第十三弹
2023-11-27 92 发布于吉林
版权
举报
版权声明:
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
简介: 第十三弹--水仙花数and水仙花数plus
求水仙花数
定义:水仙花数是指一个 3 位数,它的每个数位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。
根据定义可知 目标是求出该数数位3次方之和然后和本身比较 和本身相同则是水仙花数。
考虑如何获取数位数值
暴力获取法int a = tmp % 10;//取模获取个位 tmp 为3位数临时值 int b = (tmp / 10) % 10;//去掉个位 取模获得十位 int c =(tmp / 100) % 10;//去掉个位 十位 取模获得百位
AI 代码解读
循环判断进行比较 符合定义则打印
for(int i = 100;i <= 999;i++) { int tmp = i;//为了后续比较 使用tmp接收i值 //获取个位十位百位值 如上 if((a * a * a + b * b * b + c * c * c)==i) { printf("%d ",i); } }
AI 代码解读
完整代码
#include <stdio.h> int main() { for (int i = 100; i <= 1000; i++) { int tmp = i; int a = tmp % 10; int b = (tmp / 10) % 10; int c = (tmp / 100) % 10; if ((a * a * a + b * b * b + c * c * c) == i) { printf("%d ",i); } } return 0; }
AI 代码解读
水仙花数plus版本(求1-10000内符合定义的数)
此时就不再是求水仙花数,而是求 数位*位数等于本身的数!
因为位数不同 所以次方也会不同 第一步就需要求位数
一、求位数
把i赋值给tmp 每次符合循环条件位数++ 循环结束 获得位数int count = 1;//使用count 来当做位数 int tmp = i; while(tmp / 10)//因为count定义时是1 故把tmp/10作为循环条件 { count++;//最终获得位数 tmp /= 10; }
AI 代码解读
二、求数位对应的值
使用pow函数计算出每一个位数对应表的值,使用sum求和每求完一个位数之后 tmp/10 使得求下一位数对应的值int tmp;//注意这个位置 需要二次赋值 while(tmp) { sum += pow(tmp % 10,count);//使用函数(需要加头文件math.h) pow(值,次方值) tmp /= 10; }
AI 代码解读
三、符合条件打印
if(sum == i) { printf("%d ",i); }
AI 代码解读
总代码
#include <stdio.h> #include <math.h> int main() { for (int i = 1; i < 100000; i++) { int count = 1; int sum = 0; int tmp = i; while (tmp / 10) { count++; tmp /= 10; } tmp = i; while (tmp) { sum += pow(tmp % 10, count); tmp /= 10; } if (sum == i) { printf("%d ", i); } } return 0; }
AI 代码解读
关于pow可以选择使用现成函数 也可以选择自己创建一个求次方函数值。
如有问题 请多多指教!谢谢
目录
打赏
0
0
0
0
相关文章
|
7月前
|
11月前
|
水仙花数.
这是一个关于求解水仙花数的C++代码片段。水仙花数是指3位数,其各位数字立方和等于该数本身,如153。代码通过循环遍历100到999,拆分每位数字并计算立方和,如果满足条件则输出该数。解题关键在于对三位数的个位、十位、百位进行拆分和立方运算。
115 0 0
|
每日一题——“水仙花数”
哈喽大家好,我是保护小周ღ,本期为大家带来的是求“水仙花数”,此水仙花,非彼水仙花,一起来看看把~
167 0 0
热门文章
最新文章
目录
求水仙花数 定义:水仙花数是指一个 3 位数,它的每个数位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。 根据定义可知 目标是求出该数数位3次方之和然后和本身比较 和本身相同则是水仙花数。 考虑如何获取数位数值 暴力获取法 循环判断进行比较 符合定义则打印 完整代码 水仙花数plus版本(求1-10000内符合定义的数) 此时就不再是求水仙花数,而是求 数位*位数等于本身的数! 因为位数不同 所以次方也会不同 第一步就需要求位数 一、求位数 把i赋值给tmp 每次符合循环条件位数++ 循环结束 获得位数 二、求数位对应的值 使用pow函数计算出每一个位数对应表的值,使用sum求和 每求完一个位数之后 tmp/10 使得求下一位数对应的值 三、符合条件打印 总代码 关于pow可以选择使用现成函数 也可以选择自己创建一个求次方函数值。 如有问题 请多多指教!谢谢目录
相关知识
免费参会 ¦ 第十三期中国花境公益大讲堂(上海崇明 • 6月30日)
花海指弹谱
Q弹迷你南瓜
彩弹陷阱
Sunflower指弹谱
邵阳市第十三中学开展“趣味女神节 跃动呼啦圈”主题活动
Flower指弹谱
花海指弹吉他谱
太阳花指弹吉他谱
邵阳市第十三中学开展“善处人际关系绽放友谊之花”专题心理讲座
网址: 第十三弹 https://www.huajiangbk.com/newsview1786905.html
上一篇: 9 8 7 6 5 4 3 2 |
下一篇: 打印0~1000的水仙花数 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039