水仙花数【简单版】

来源:互联网 发布:js splice slice 编辑:程序博客网 时间:2024/04/30 05:33

水仙花数

时间限制:1000 ms  |  内存限制:65535 KB
难度:0
描述
请判断一个数是不是水仙花数。
其中水仙花数定义各个位数立方和等于它本身的三位数。
输入
有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000)
输入0表示程序输入结束。
输出
如果n是水仙花数就输出Yes
否则输出No
样例输入
1531540
样例输出
Yes

No

方法【1】:

</pre><pre name="code" class="cpp"> # include <stdio.h>int decide(int);int main(){int a = 1, b;while(a != 0){scanf("%d", &a);if (a != 0){b = decide(a);puts(b == 1?"Yes":"No");}}return 0;} int decide(int n){int a[3];a[0] = n/100;a[1] = n%100/10;a[2] = n%10;if(a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2] == n) return 1;else return 0;}        

方法【2】:

 # include <stdio.h># include <string.h>int decide(char *);int main(){char arr[3];int a = 1,b;while (a != 0){gets(arr);a = arr[0] - '0';if (a != 0){b = decide(arr);puts(b == 1?"Yes":"No");}}return 0;}int decide(char *p){int i, sum1, sum2, m;int a[3];for (i = 0, sum1 = 0; i < 3; i++){m = *(p + i) - '0';sum1 += (m*m*m); }a[0] = p[0] - '0';a[1] = p[1] - '0';a[2] = p[2] - '0';sum2 = a[0]*100+a[1]*10+a[2];if (sum1 == sum2) return 1;else return 0;}        

两种方法时间内存都一样 都是时间为0内存为232


0 0
原创粉丝点击