设计一个函数判断一个数是否为“水仙花数”,通过函数调用输出所有“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一“水仙花数”,因为153= + + 。注意:若输入的不是3位正整数,则输出 Error输入样例1:153输出样例1:YES
输入样例2:100输出样例2:NO
水仙花数 一般都用三位数的
四位以上的水仙花数定义不在是立方和了。
扩展的“水仙花数” 是指: 其各位数字的 位数次方和等于该数本身。
四位水仙花数指 其各位数字的 4次方和等于该数本身。
五位水仙花数指 其各位数字的 5次方和等于该数本身。
...以次类推:
#include<stdio.h>
#include<math.h>
int getsum(int n)
{
int sum=0,ret=0,count=0;
while(n)
{
ret=n%10;
sum+=(int)pow(ret,3);
n/=10;
count++;
}
if(count!=3)
return 0;
return sum;
}
int main()
{
int n;
while(~scanf("%d ",&n))
{
if(n==getsum(n)&&getsum(n)!=0)
{
printf("YES");
}
if(!getsum(n))
printf("Error");
else
printf("NO");
printf("\n");
}
return 0;
}