原题链接:C语言训练-"水仙花数"问题2
解题思路:首先由题知水仙花是三位数,所以由100-999之间就可以,将个位十位百位都分出来再分别三次方相加,最后判定是否相等原数即可
注意事项:用循环有一个好处 是从100一直向上加,碰到水仙花数直接输出就解决了从小到大排序的问题,
如果从大到小排序可以再定义一个数组反向输出
参考代码:
int i=100;
int gw,sw,bw; //gw 个位 sw十位 bw百位
while(i<1000)
{
gw=i%10;
sw=(i/10)%10;
bw=(i/10)/10;
if(gw*gw*gw+sw*sw*sw+bw*bw*bw==i) //判定是否相等
{
printf("%d\n",i);
}
i=i+1;
}
return 0;
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复