首页 分享 第十三弹

第十三弹

来源:花匠小妙招 时间:2025-04-23 18:58

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的水仙花数

推荐分享