博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Python求解水仙花问题
阅读量:5734 次
发布时间:2019-06-18

本文共 713 字,大约阅读时间需要 2 分钟。

题目:输出所有的水仙花数。所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。例如,153是一个水仙花数,因为153 = 1立方 + 5立方 + 3立方。

解决方法:

方法一:使用列表推导式

1 data=[i for i in range(100,1000)if pow(i//100,3)+pow(i//10%10,3)+pow(i%10,3)==i]

这个方法是比较简单,但是数字只限于100-999,如果超出了这个范围又要在除1000,所以在方法二中我决定使用分解的方法,将一个数字分解成个位、十位、百位、千位、万位等,这样便可以一直求到很大的数字,而且代码还比较简洁。

方法二:使用函数和循环

1 def d(): 2     def f(n): 3         c=list(n[::]) 4         return c 5     for i in range(100,100000): 6         d=f(str(i)) 7         s=0 8         for j in d: 9             s+=pow(int(j),3)10         if(s==int(i)):11             print("%d"%s)12 d()

程序运行结果:

153

370
371
407

注解:做完题目才发现原来水仙花数只有这4个,可是解决问题的时候我们事先是不知道的,所以我个人还是比较推荐大家选择方法二。

转载于:https://www.cnblogs.com/thunderest/archive/2013/04/23/3037340.html

你可能感兴趣的文章
微博自动化测试
查看>>
Sublime Text 2.0.2,Build 2221注册码
查看>>
js scroll事件
查看>>
day08 文件操作
查看>>
最长递增子序列 动态规划
查看>>
「小程序JAVA实战」微信小程序工程结构了解(五)
查看>>
使用列表
查看>>
Edge browser hosts file
查看>>
原生CSS设置网站主题色—CSS变量赋值
查看>>
概率dp - UVA 11021 Tribles
查看>>
webpack 4.0 中 clean-webpack-plugin 的使用
查看>>
数据库神器:Navicat Premium
查看>>
WPF
查看>>
Best website for Photogrammetry
查看>>
中文词频统计
查看>>
POJ 2236 Wireless Network (并查集)
查看>>
python分类
查看>>
linux 中常见的压缩和解压缩的命令
查看>>
GitBlit (1)-- 在linux 安装 GitBlit 并运行
查看>>
Windows与Linux之间的文件自动同步
查看>>