【发布时间】:2017-09-30 09:27:38
【问题描述】:
我试图找到大数的 13 个连续数字的最大乘积 73167176531330624919225119674426574742355349194934 96983520312774506326239578318016984801869478851843 85861560789112949495459501737958331952853208805511 12540698747158523863050715693290963295227443043557 66896648950445244523161731856403098711121722383113 62229893423380308135336276614282806444486645238749 30358907296290491560440772390713810515859307960866 70172427121883998797908792274921901699720888093776 65727333001053367881220235421809751254540594752243 52584907711670556013604839586446706324415722155397 53697817977846174064955149290862569321978468622482 83972241375657056057490261407972968652414535100474 82166370484403199890008895243450658541227588666881 16427171479924442928230863465674813919123162824586 17866458359124566529476545682848912883142607690042 24219022671055626321111109370544217506941658960408 07198403850962455444362981230987879927244284909188 84580156166097919133875499200524063689912560717606 05886116467109405077541002256983155200055935729725 71636269561882670428252483600823257530420752963450。
但是,我的代码似乎在某处出错,987 次的输出如下:
0 731671765313
这是有问题的代码:
num = str('**insert the big number here**')
highest = 0
mylist=[]
for i in range(987):
n = 0
m = 12
product = 1
mylist=[num[n:m]]
for x in mylist:
product *= x
print(n, product)
n += 1
m += 1
感谢任何帮助,因为我花了很长时间研究这个。
【问题讨论】:
-
您在循环的每次迭代中重置
n和m的值。在for循环之前定义它们。 -
你说 mylist = [num[n:m]],但你应该只有 mylist = num[n:m]。而且 num 也是一个字符串,所以你必须使用 int(x) 而不仅仅是 x。否则你在做 product *= "9"
-
您的预期输出是什么?目前你只是
print结果,一切都被扔掉了。你想要数字序列和生成的产品吗?
标签: python list range slice python-3.5