这个函数应该接受一个数字字符串(Snum),然后是它应该从(indx)开始的索引,然后从那个(indx)开始,乘以下一个(dig)数字并返回值。这是当前函数应该返回72,但它返回41472。谢谢!
def product(dig, indx, snum):
length = int(len(snum))
int(indx)
int(dig)
total = int(snum[indx])
for k in range((indx + 1), length):
for i in range(0, dig):
total = total * int(snum[k])
else:
return total
x = product(3, 5, '72890346')
print(x)发布于 2017-09-26 23:41:26
下面的代码应该可以做到:
def product(dig, indx, snum):
mul = 1
for s in snum[indx : indx+dig+1]: #Note the `dig+1`
mul *= int(s) #multiply the number
return mul驱动程序代码:
x = product(3, 5, '72890346')
print(x)
#72在您的代码中,逻辑几乎没有问题。您不需要两个循环。在这里,我们使用slicing操作来获取indx和indx+dig之间的字符,然后将得到的string转换为int并相乘。
https://stackoverflow.com/questions/46430627
复制相似问题