自己写的一个求精致数的代码,为什么出错了?

问题描述:

给定两个非负整数x和y,如果某一整数等于x^i+y^j,其中整数i>= 0且j>=0,那么我们认为该整数是一个"精致"的数。返回值小于或等于n(n<=200)的所有精致的数组成的列表。

结果列表中每个值最多出现一次,同时请使用sorted保证结果唯一。

 

你的b没有定义,应该在前面加上

b=[]

元组是tuple不是tupple

x = 5 #int(input('x:'))
y = 4 #int(input('y:'))
n = 200 #int(input('n:'))
i = -1
j = 0
a = []

while True:
    j = 0
    i += 1
    while x**i + y**j < n:
        print(i, j)
        a.append(x**i + y**j)
        j += 1
    if x**i + 1>n:
        break
    
print(sorted(set(a)))

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632