蓝桥杯每日一题(2):维纳猜年龄(python)

Topic:

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

Solution:

运用反解思想
10的3次方是4位数
30的3次方是五位数
所以维纳的年龄在10到30之间
进行一一比较
首先建立一个包含0-9的列表
从10开始
尝试对每一次查询的年龄的三次方和四次方
年龄的每一位与0-9比对
将每一次比对的结果删除
若最后列表为空则0-9中全部删除
则此年龄就是维纳当时的年龄

Code:

for i in range(10, 30):
    number = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    age_1 = list(str(i ** 3))
    age_2 = list(str(i ** 4))

    for j in age_1:
        try:
            number.remove(int(j))
        except:
            pass
        else:
            pass

    for y in age_2:
        try:
            number.remove(int(y))
        except:
            pass
        else:
            pass

    if not number:
        print(i)
        break

Answer:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_50791900/article/details/112312490