这是个入门训练题,自然用C语言编写程序。
这个程序采用了与多数人不一样的计算立方和的方法,从个位开始逐位取出数字,来计算各位的立方和。
AC程序如下:
/* HDU2010 水仙花数 */
#include
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("\n");
}
return 0;
}
原文:http://blog.csdn.net/tigerisland45/article/details/51747805