前导0 数字前站位的对数字的值没有意义 %05d(不够五位用0凑)
#include<iostream>
using namespace std;
//计算和返回n转换成base进制后的各位数字之和
int Cale(int base,int n){
int sum=0;
for(;n>0;) //n>0处理
sum+=n%base;//加各进制的各位数之和;
n/=base; //用来转化进制
return sum;
}
//遍历范围内的每一个数,将符合条件的数输出
int main(){
int i,a;
for(i=2992;i<=9999;i++){
a=Cale(10,i);
if(a==Cale(12,i)&&a==Cale(16,i))
cout<<i<<endl;
}
return 0;
}
关于转换进制:
就用这个数/进制=商…余数
例如26转16进制 26/16=1…10 1A
注 10A 11B 12C 13D 14E 15F 16进位
26转2进制 26/2=13…0
13/2=6…1
6/2=3…0 01011
3/2=1…1
1/2=0…1