什么是水仙花数?

 我来答
热情发言
高能答主

2023-05-15 · 日落是免费的,春夏秋冬也是。
热情发言
采纳数:497 获赞数:634338

向TA提问 私信TA
展开全部

所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)

三位的水仙花数共有4个:153,370,371,407。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

拓展资料:

水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。附:其他位数的自幂数名字。

算法设计

“水仙花数”是指满足某一条件的三位数,根据这一信息可以确定整数的取值范围是 100〜999。对应的循环条件如下:for(n=10; n<1000; n++){//......}
对代码的说明:

  • 将n整除以100,得出n在百位上的数字hun。

  • 将(n-i*100)整除以10(或将n先整除以10再对10求模n/10%10),得出n在十位上的数字ten。

  • 将n对10取余,得出n在个位上的数字ind。

  • 求得这三个数字的立方和是否与其本身相等,若相等,则该数为水仙花数。


  • 对于每个位置上的数值将其拆分的算法有很多种,根据不同情况选择不同算法(对于同一问题不同算法的效率有时会相差很多)。


  • 下面是完整的代码:纯文本复制

  • #include <stdio.h>int main(){int hun, ten, ind, n;printf("result is:");for( n=100; n<1000; n++ )  /*整数的取值范围*/{hun = n / 100;ten = (n-hun*100) / 10;ind = n % 10;if(n == hun*hun*hun + ten*ten*ten + ind*ind*ind)  /*各位上的立方和是否与原数n相等*/printf("%d  ", n);}printf("\n");return 0;}

参考资料:水仙花数百度百科

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式