Description:
如果一个n位数的每个数位的n次方和就是本身,那么我们称这种数为“水仙花数”。比如371,33+73+13=27+343+1 = 371。现给你一个数,请求这个数是否是水仙花数。
输入:
有多组样例。每个样例占一行,为一个整数a(1<=a <=1,000,000),如果a为 0,那么表示输入结束,这个样例不需要处理。
输出:
每行输出一个样例的结果,如果是就输出“Yes”,否则输出“No”。
代码如下:
#include<stdio.h>
int main()
{
int a, count, num, i, p = 1, t,k;
while (scanf_s("%d", &a)) {
if (a == 0) {
break;
}
count = 0;
t = a;
while (t > 0) {
count++;
t /= 10;
}
t = a;
num = 0;
while (t > 0) {
p = t % 10;
k = 1;
for (i = 0; i < count; i++) {
k = k * p;
}
t /= 10;
num += k;
}
if (num == a)printf("Yes\n");
if (num != a)printf("No\n");
}
return 0;
}