主要问题是运行出来没结果,while里面a的值,是求出个十百三次方的之和,然后if语句判断c和a是否相等,但运行出来没一个结果
![](https://profile-avatar.csdnimg.cn/a011d0908e98402895991216401d63d4_2301_77331351.jpg!4)
这是求水仙花数运行没结果
主要问题是运行出来没结果,while里面a的值,是求出个十百三次方的之和,然后if语句判断c和a是否相等,但运行出来没一个结果
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- a5156520 2023-05-15 18:50关注
while循环前,初始化为a=0,以用于重新计算每个f的三次幂之和;
然后用一个临时变量记录f,用临时变量记录f的值,来计算f的每个数位的3次幂之和;
最后再判断这个和是否和f相等就可以了。
修改如下:
参考链接:水仙花数_百度百科 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。https://baike.baidu.com/item/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/2746160
#include <stdio.h> int main(void){ int f,b,a=0,c=99; for(f=100;f<1000;f++){ // 用临时变量temp记录每个f的值 int temp=f; // 存储f每个数位的3次幂之和的变量,每次判断初始化为0 a=0; // 求当前f的每个数位数字3次幂之和 while(temp!=0){ b=(temp%10); a+=(b*b*b); temp/=10; } // https://cn.bing.com/?mkt=zh-CN // 如果f的每个数位3次幂之和a等于f,则f是水仙花数,打印它 if(f==a){ printf("%d\n",a); } } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 程序实在不会写,要秃了
- ¥15 pycharm导入不了自己的包
- ¥15 C#.net通过内网url地址获取文件并下载问题,浏览器postman可以正常下载,用程序不行
- ¥15 本人本科机械,目前研一。没有深度学习基础,目前对研究生课题一片迷茫,请教各位!
- ¥15 关于R语言单因素与多因素线性回归的平均值
- ¥15 服务器清除BIOS之后引导不了
- ¥15 CPLEX用OPL编写的混合整数线性优化问题。
- ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
- ¥15 前端预览docx文件,文件从后端传送过来。
- ¥15 层次聚类和蛋白质相似度