问题链接:HDU2010 水仙花数。
问题简述:参见上述链接。
问题分析:这里采用了与多数人不一样的计算立方和的方法,从个位开始逐位取出数字,来计算各位的立方和。
程序说明:(略)。
参考链接:I00012 打印三位数的水仙花数及其个数。
AC的C语言程序如下:
/* HDU2010 水仙花数 */ #include <stdio.h> int main(void) { int m, n, count, i, t; while(scanf("%d%d", &m, &n) != EOF) { // 水仙花数计数清零 count = 0; for(i=m; i<=n; i++) { // 计算立方和:从个位、十位到百位分别计算求和 int sum = 0; t = i; while(t) { int t2 = t % 10; sum += t2 * t2 * t2; t /= 10; // 去掉个位 } // 输出结果 if(sum == i) { if(count > 0) printf(" "); printf("%d", i); count++; } } // 输出结果(没有水仙花数)和换行 if(count == 0) printf("no"); printf(" "); } return 0; }