有趣的进制数
题目描述
2992这个数的十进制数四位数字之和为2+9+9+2=22,它的十六进制数为BB0,其四位数字之和也为22,同时它的十二进制数表示1894,其四位数字之和也为22。
请判断任意一个十进制的四位数,是不是满足上述规则。
输入格式
输入含有一些四位正整数,如果为0,则输入结束。
输出格式
若n为满足上述规则,则输出“#n is a GOD number.”,否则输出“#n is not a GOD number.”。每个结果占一行。注意:#n表示所读入的n值。
样例输入
2992
1234
0
样例输出
2992 is a GOD number.
1234 is not a GOD number.
思路:
进制转换问题
#include<bits/stdc++.h>
using namespace std;
main(){
int n;
while(cin>>n){
if(n==0) break;
int t=n;
int num1=0,num2=0,num3=0;
while(t>0){
num1+=t%10;
t/=10;
}
t=n;
while(t>0){
num2+=t%16;
t/=16;
}
t=n;
while(t>0){
num3+=t%12;
t/=12;
}
//cout<<num1<<" "<<num2<<" "<<num3<<endl;
if(num1==22&&num2==22&&num3==22){
printf("%d is a GOD number.\n",n);
}else{
printf("%d is not a GOD number.\n",n);
}
}
}