栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python猜美国数学家维纳的年龄

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python猜美国数学家维纳的年龄

题目描述
        美国数学家维纳(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

 这个方法比较笨仅供参考(有好的方法评论区交流互相学习一下 嘿嘿嘿)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/987656.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号