概述
题目描述
美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。” 请编程输出当年维纳的年龄。
思路
先if...else...语句,对数字范围限制,分别将年龄i的三次方的个位、十位、百位、千位数分别添加到空列表L1中,将年龄i的四次方的个位、十位、百位、千位、万位、十万位数添加到空列表L2中。对L1、L2两个列表进行合并去重,去重的时候用set()得到L4,对L4,L3进行排序sort()(这一点是关键,比较菜卡在这半天),最后,对比L4是否等于L3。输出年龄i.
L1 = []
L2 = []
L4 = []
L3 = [0,1,2,3,4,5,6,7,8,9]
for i in range(0, 101):
if(i**3>=1000 and i**3<=9999 and i**4>=100000 and i**4<=999999):
L1.append((i**3)%10)
L1.append((i**3)/10%10)
L1.append((i**3)/100%10)
L1.append((i**3)/1000%10)
L2.append((i**4)%10)
L2.append((i**4)/10%10)
L2.append((i**4)/100%10)
L2.append((i**4)/1000%10)
L2.append((i**4)/10000%10)
L2.append((i**4)/100000%10)
L4 = L1 +L2
L4 = list(set(L4))
L4 = L4.sort()
L3 = L3.sort()
if(L4 == L3):
print(i)
break
else:
print(i)
continue
else:
continue
这个方法比较笨仅供参考(有好的方法评论区交流互相学习一下 嘿嘿嘿)
最后
以上就是想人陪蜻蜓为你收集整理的python猜美国数学家维纳的年龄的全部内容,希望文章能够帮你解决python猜美国数学家维纳的年龄所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复