Sky数
件名の説明:
空は奇妙なことのように育ったが、また、デジタルに特に敏感で生まれ、偶然、彼は面白い4桁2992は、この数、その小数表現を見つけ、その4桁の合計2 + 9 + 9 + 2 = 22、さらに4桁の和であることBB0進数は、また、4桁22の和であり、その10進数1894、アハ、一致ああしながら、22であります。スカイは非常に4桁の数字のように、彼のための発見のため、ここでは、スカイの数を呼び出します。しかし、この数はまだ少し面倒で判断する、ああ、今、あなたは4桁の10進のいずれかを決定するのに役立ちます場合は、それが空の番号ではありません。
入力
入力は、それが0であれば、いくつかの4つの正の整数が含まれ、入力端。
出力
nはスカイの数である場合には、出力「#nがスカイ数である。」、そうでなければ「#nがスカイ数ではありません。」。各結果行。注:#Nは、n値の読み出しを表します。
サンプル入力
機2992 1234 0サンプル出力
2992年にはスカイ数です。 1234スカイ数ではありません。
その答えによって:
#include<stdio.h>
int trans(int n,int r){ //将十进制数转换为r进制
int sum=0;
while(n){
sum+=n%r;
n/=r;
}
return sum;
}
int main()
{
int m,i;
while(~scanf("%d",&m))
{
if(m==0)break; //如果为0,则输入结束
if(trans(m,10)==trans(m,16)&&trans(m,10)==trans(m,12)){
printf("%d is a Sky Number.\n",m);
}else{
printf("%d is not a Sky Number.\n",m);
}
}
return 0;
}