c++无脑暴力
#include<bits/stdc++.h>
using namespace std;
int check(int i)//纯暴力,按照十进制方法照猫画虎,然后判断是否都满足
{
int cnt = 0;//计数器,返回时用来判断i是否满足要求
int sum = 0;//每一位和
int j = i;//每个进制判断后,给j不断恢复传入的i的值
//十进制
while(j > 0)//获取每一位的和
{
sum += j % 10;
j /= 10;
}
if(i % sum == 0){//判断是否可以整除
cnt ++;
}
//二进制
j = i;
sum = 0;
while(j > 0)
{
sum += j % 2;
j /= 2;
}
if(i % sum == 0){
cnt ++;
}
//八进制
j = i;
sum = 0;
while(j > 0)
{
sum += j % 8;
j /= 8;
}
if(i % sum == 0){
cnt ++;
}
//十六进制
j = i;
sum = 0;
while(j > 0)
{
sum += j % 16;
j /= 16;
}
if(i % sum == 0){
cnt ++;
}
if(cnt == 4)return 1;//四种情况都符合,说明是需要的i
else return 0;
}
int main()
{
int i = 0, cnt = 0;//i是当前的数,cnt记录有几个需要的数
while(cnt < 2023)//找到第2023个
{
++ i;//i递增
cnt += check(i);
}
cout << i;//输出结果
return 0;
}
0 回复
0 转发
0 喜欢
8 阅读



