水仙花数
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
0
-
描述
-
请判断一个数是不是水仙花数。
其中水仙花数定义各个位数立方和等于它本身的三位数。-
输入
-
有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000)
输入0表示程序输入结束。
输出
-
如果n是水仙花数就输出Yes
否则输出No
样例输入
-
153 154 0
样例输出
-
Yes No
来源
- C语言课本习题改编 上传者
-
张云聪
#include<stdio.h> const int TRUE = 1; const int FALSE = 0; int main( void ) { int isShui( int n );//判断 n 是否为水仙花数 int n; scanf("%d",&n); while( 0 != n ) { if( TRUE == isShui(n) ) { printf("Yes\n"); } else { printf("No\n"); } scanf("%d",&n); } return 0; } //判断 n 是否为水仙花数 int isShui( int n ) { int bai = n / 100; int shi = ( n - bai * 100 ) / 10; int ge = n - bai * 100 - shi * 10; int m = bai * bai * bai + shi * shi * shi + ge * ge *ge ; // printf("n = %d\tm = %d\n",n,m); // printf("bai = %d\n",bai); // printf("shi = %d\n",shi); // printf("ge = %d\n",ge); if( m == n ) { return TRUE; } else { return FALSE; } }
-
有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000)