优草派 > Python

输出所有的水仙花数

优草君         优草派

水仙花数,是指一个三位数,它的每个位上的数字的立方和等于它本身。比如:153 = 1^3 + 5^3 + 3^3,因此,153就是一个水仙花数。那么,如何输出所有的水仙花数呢?

一、使用循环语句输出

输出所有的水仙花数

我们可以使用循环语句来判断每个三位数是否为水仙花数。具体步骤如下:

1.使用for循环,从100开始遍历到999;

2.将当前遍历的数分离出个位、十位、百位;

3.判断当前数是否为水仙花数,如果是,输出当前数。

以下是使用Python语言实现的代码:

for i in range(100,1000):

a = i // 100

b = i % 100 // 10

c = i % 10

if i == a**3 + b**3 + c**3:

print(i)

二、使用递归函数输出

除了使用循环语句来输出水仙花数,我们还可以使用递归函数来实现。具体步骤如下:

1.定义一个递归函数,传入当前的三位数;

2.将当前遍历的数分离出个位、十位、百位;

3.判断当前数是否为水仙花数,如果是,输出当前数;

4.递归调用函数,传入下一个三位数。

以下是使用Python语言实现的代码:

def narcissistic(start, end):

if start <= end:

a = start // 100

b = start % 100 // 10

c = start % 10

if start == a**3 + b**3 + c**3:

print(start)

narcissistic(start + 1, end)

narcissistic(100, 999)

三、使用列表推导式输出

除了使用循环语句和递归函数,我们还可以使用列表推导式来输出水仙花数。具体步骤如下:

1.使用列表推导式,遍历所有的三位数;

2.将当前遍历的数分离出个位、十位、百位;

3.判断当前数是否为水仙花数,如果是,将当前数添加到列表中。

以下是使用Python语言实现的代码:

narcissistic_list = [i for i in range(100, 1000) if i == (i // 100)**3 + (i % 100 // 10)**3 + (i % 10)**3]

print(narcissistic_list)

四、总结

以上三种方法,都可以输出所有的水仙花数。使用循环语句比较简单,递归函数可以让代码更加简洁,而列表推导式则可以让代码更加简洁和高效。无论使用哪种方法,我们都可以用较少的代码输出所有的水仙花数。

  • 微信好友

  • 朋友圈

  • 新浪微博

  • QQ空间

  • 复制链接

取消
5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024