39-水仙花数
内存限制:64MB 时间限制:1000ms Special Judge: No
accepted:35 submit:70
题目描述:
请判断一个数是不是水仙花数。
其中水仙花数定义各个位数立方和等于它本身的三位数。
其中水仙花数定义各个位数立方和等于它本身的三位数。
输入描述:
有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000) 输入0表示程序输入结束。
输出描述:
如果n是水仙花数就输出Yes 否则输出No
样例输入:
复制
153 154 0
样例输出:
Yes No
PS:
①、取整数中的每一个数的方法:
1 while(a) 2 { 3 temp[i ++] = a%10; 4 a /= 10; 5 }
C/C++代码实现(AC):
1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 #include <cstdio> 5 #include <cmath> 6 #include <stack> 7 #include <map> 8 #include <queue> 9 #include <set> 10 11 using namespace std; 12 const int MAXN = 510; 13 14 int main() 15 { 16 17 int t; 18 while(~scanf("%d", &t), t) 19 { 20 int a = t, cnt = 0; 21 while(a) 22 { 23 cnt += (a%10) * (a%10) * (a%10); // 不要直接用系统内的pow,精度丢失有点大 24 a /= 10; 25 } 26 if (cnt == t) 27 printf("Yes\n"); 28 else 29 printf("No\n"); 30 } 31 32 return 0; 33 }