python实现蓝桥杯真题:猜美国数学家维纳的年龄

题目描述

美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。” 请编程输出当年维纳的年龄。
‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬
输入格式
该题目没有输入‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

输出格式
一个正整数(维纳当年的年龄)

思路

根据题目得知,当年维纳的年龄的立方是个4位数。年龄的4次方是个6位数。估算4位数最大为9999,最小为1000,6位数最大为999999,最小为100000,得到两个区间,年龄只能有一个数,综合得出年龄范围在17-21中间。代入每个数计算后就能得出结果。
如果不考虑区间,一开始就计算,直接用程序来解决问题。遍历数值,符合要求的输出。首先确定年龄的范围,根据题干,维纳最小为10岁才能达到年龄的3次方为4位数,最大通过口算无法得出,但维纳年轻的面孔,我这里假定他最大为40岁。(也许维纳保养的比较好,hh)
将年龄的3次方与4次方计算数值合并,得出的数值刚好是由0到9组成的。

实现

num={'1','2','3','4','5','6','7','8','9','0'}  #定义0-9字符的集合
for i in range(10,40):  #遍历
    s=str(i**3)+str(i**4)   #将年龄数值合并
    if  len(set(s))==len(num):   #判断元素个数是否相同
        print(i)				#相同则输出年龄
        break
  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值