python基础编程_10_生成水仙花数
2018-03-26 09:13
363 查看
什么是水仙花数?水仙花数是指一个 n 位正整数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)。Python练习题问题如下:要求:打印输出所有的"水仙花数"。Python解题思路分析:
可以利用for循环控制流语句来完成操作。从100-9999个数,每个数分解出个位、十位和百位。
方案一:from numpy import *
for n in range(100,10000):
#将整形数转换成字符串
numberStr=str(n)
length=len(numberStr)
a=zeros(length)
#将字符串中的每一位数取出,赋值给数组
for i in range(length):
a[i]=int(numberStr[i])
#数组a**value相当于对数组中的每个数**value操作
if n==sum(a**length):
print (n)
for n in range(100,10000):
#将整形数转换成字符串
numberStr=str(n)
length=len(numberStr)
if length==3:
#/100得到的结果为高位,%100得到的结果为低位
baiwei=int(n/100)
#此处加入int()函数,保证333/100=3而不是3.33
'''在python中33%10=3,333/100=3.33'''
shiwei=int(n/10)%10
gewei=n%10
if n == baiwei ** 3 + shiwei ** 3 + gewei ** 3:
print(n)
elif length==4:
qianwei=int(n/1000)
baiwei=int(n/100)%10
shiwei=int(n%100/10)
gewei=n%10
if n == qianwei ** 4+ baiwei ** 4 + shiwei ** 4+gewei**4:
print(n)
153 370 371 407 1634 8208 9474
可以利用for循环控制流语句来完成操作。从100-9999个数,每个数分解出个位、十位和百位。
方案一:from numpy import *
for n in range(100,10000):
#将整形数转换成字符串
numberStr=str(n)
length=len(numberStr)
a=zeros(length)
#将字符串中的每一位数取出,赋值给数组
for i in range(length):
a[i]=int(numberStr[i])
#数组a**value相当于对数组中的每个数**value操作
if n==sum(a**length):
print (n)
153 370 371 407 1634 8208 9474方案二:from numpy import *
for n in range(100,10000):
#将整形数转换成字符串
numberStr=str(n)
length=len(numberStr)
if length==3:
#/100得到的结果为高位,%100得到的结果为低位
baiwei=int(n/100)
#此处加入int()函数,保证333/100=3而不是3.33
'''在python中33%10=3,333/100=3.33'''
shiwei=int(n/10)%10
gewei=n%10
if n == baiwei ** 3 + shiwei ** 3 + gewei ** 3:
print(n)
elif length==4:
qianwei=int(n/1000)
baiwei=int(n/100)%10
shiwei=int(n%100/10)
gewei=n%10
if n == qianwei ** 4+ baiwei ** 4 + shiwei ** 4+gewei**4:
print(n)
153 370 371 407 1634 8208 9474
相关文章推荐
- Python3基础 dict 推导式 生成10以内+奇数的值为True 偶数为False的字典
- Python网络编程基础笔记-使用minidom生成XML文件
- Python基础10列表的生成
- 利用Python进行数据分析(10) pandas基础: 处理缺失数据
- python基础教程_学习笔记10:异常
- Python基础教程之tcp socket编程详解及简单实例
- python入门编程之基础
- 【Python自学】10.函数基础(下)
- python编程基础教程 第二季
- Python基础10
- Python 3多线程编程学习笔记-基础篇
- python多线程编程基础
- Python:pygame游戏编程之旅七(pygame基础知识讲解1)
- python基础——列表生成式
- python基础编程_29_map()函数的大小写转换
- 零基础入门学习Python(10)--列表:一个打了激素的数组
- 我与python约个会:11程序编程基础5:输入输出
- python基础编程_8_暂停预定时间,time.sleep( ),时间的格式化
- Python基础-面向过程编程实现Linux下cat -rl ‘dir’ |grep ‘keywords’ 功能
- python基础编程_17_猴子吃桃