我一直收到这个错误,但我无法理解我做错了什么。 我查看了其他类似的问题并尝试应用它们,但它没有用。
代码是chekc,如果数字中的个别数字,当^ 3等于原始数字时。
def addCubes(a):
total = 0
for i in (0, len(str(a))):
total += (a[i])**3
if total == a:
print("feck yah")
else:
print("NEIN!!!")
答案 0 :(得分:3)
将a
转换为字符串,然后访问字符串索引i
处的数字,将数字转换为int
,然后将其立方体化:
total = 0
for i in range(0, len(str(a))):
total += int(str(a)[i])**3
你也可以试试这个:
for i in str(a):
total += int(i) ** 3
重写功能:
def addCubes(a):
total = 0
for i in str(a):
total += int(i) ** 3
if total == a:
print("feck yah")
else:
print("NEIN!!!")
addCubes(371)
feck yah
>>>
答案 1 :(得分:1)
你可以在one-line
中解决这个问题!只需使用generator
expression
内的sum
cube
,integer
character
stringified
a
sum(int(d)**3 for d in str(a)) == a
}}:
if-else
我会允许您将此合并到statements
a = 28 --> False
a = 153 --> True
中,但您可以看到它有效:
当...
{{1}}