您的位置:首页 > 编程语言 > C语言/C++

C语言实现枚举100~999之间的所有水仙花数

2018-04-02 00:08 639 查看
题目来源:大工慕课 链接

作者:Caleb Sung

题目要求

找出100~999之间的所有“水仙花”数。所谓“水仙花”数是指一个三位数,其各位数的立方和等于该数本身,例如:153=1*1*1+5*5*5+3*3*3。

注意事项

在这里我不直接使用一个从100逐个加1一直到999的 i 来遍历数字的原因来自于水仙花数的定义——水仙花数的判定需要分别取出每个数字的三个位数,如果按照按照直接逐次遍历的算法则必须再加入一个提取三个位数的步骤,必将增加算法的时间复杂程度。因而采用以下的算法:直接使用三重循环(分别代表三位数字)进行计算。

解答示范

这里我使用for循环的嵌套,写代码的时候不要弄糊涂了。

#include<stdio.h>
int main()
{
int a,b,c,s;
printf("本程序用于枚举100~999之间的所有水仙花数。\n");
for(a=1;a<=9;a++)
{
for(b=0;b<=9;b++)
{
for(c=0;c<=9;c++)
{
s=100*a+10*b+c;
if(s==(a*a*a+b*b*b+c*c*c))
printf("%d\t",s);
}
}
}
return 0;
}


运行结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐