我在做一个学校作业,我需要从一个八进制数字“s”开始,然后连续增加一个八进制值“d”,然后把它变成一个有行“r”的金字塔。然后,我需要把最后一行中的所有数字相加
我有下面的代码,但它经常出现故障。它只适用于某些测试用例,我将它们与代码一起附在下面。例如,它适用于测试用例2、3、5,它应该为您提供36。它也适用于1、4和20,这将为您提供230。但是它对10,10,10这样的东西不起作用
我做错了什么
import decimal
def sumOfLastRow(s, d, r):
lastnums = []
lrow = 1
f = str(s)
b = int(f, 8)
s = b
x = 0
stop = 2
for x in range(r):
for column in range(1, stop):
print(oct(s), end=' ')
s += d
print("")
stop += 1
s -= d
while (lrow <= r):
lastnums.append(oct(s)[2:])
s -= d
lrow += 1
lastnums = list(map(lambda ele: sum(int(sub) for sub in str(ele)), lastnums))
lastnums = sum(lastnums)
print(lastnums)
return(lastnums)
目前没有回答
相关问题 更多 >
编程相关推荐