题目:NYOJ 39 水仙花数
下面这种方法是每次输入都要计算
#include <stdio.h>
#include <math.h>
int main()
{
int n,g,s,b;
while(~scanf("%d",&n))
{
if(n==0)
break;
g=n%10; //个位
s=n/10%10; //十位
b=n/100; //百位
if(pow(g,3)+pow(s,3)+pow(b,3)==n)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
因为水仙花数只有4个数,所以每输入一个数,只需要判断是不是这4个数中的一个就行了,就是下面这种方法
#include <stdio.h>
int main()
{
int n,g,s,b;
while(scanf("%d",&n) && n)
{
if(n==153 || n==370 || n==371 || n==407) //水仙花数只有4个:153 370 371 407
printf("Yes\n");
else
printf("No\n");
}
return 0;
}