水仙花数
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。
现在要求输出所有在m和n范围内的水仙花数。
Input
如果给定的范围内不存在水仙花数,则输出no;
每个测试实例的输出占一行。
100 120 300 380
no 370 371my code:( Output Limit Exceeded)#include<stdio.h> #include<math.h> int sxh(int m) { int sum = 0; int n = m; while (n) { sum += (n % 10)*(n % 10)*(n % 10); n /= 10; } return sum == m; }
int main(void) { int n, m, c;//c是判断m~n到底有没有水仙花数的标志 while (scanf("%d%d", &m, &n)) { int m1=m; for (c = 0; m <= n; m++) { if (sxh(m)){ printf("%d ",m); } else{c++;} } printf("\n"); if(c==(m-m1)){printf("no\n",c);} } return 0;
}
my code2:
#include<stdio.h> int main(){ int m,n,i,b[10]; int a[] = {153, 370, 371, 407}; while(~scanf("%d%d",&m,&n)){ if(m>a[3]||n<a[0]){printf("no\n");} else{ int j=0; for(i=0;i<=3;i++) if(m<=a[i]&&n>=a[i]){b[j]=a[i];j++;} for(i=0;i<j-1;i++){ printf("%d ",b[i]); } printf("%d\n",b[j-1]); } } return 0; }
以下代码转载杭州电子科技大学Judge Online 2000->2099题解题报告 浙江工商大学 软件0601 redraimentEmail:redraiment@126.com 百度空间:http://hi.baidu.com/redraiment/
#include<stdio.h> int main() { int b, l, c, i; int a[] = {1, 153, 370, 371, 407}; while (scanf("%d%d", &b, &l) != EOF) { c = 0; for (i = 0 ; i < 5 ; i++) { if (a[i] >= b && a[i] <= l) printf(c++ ? " %d" : "%d", a[i]); } printf(c ? "\n" : "no\n"); } return 0; }