首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 3 pow() / **超时

Python 3 pow() / **超时
EN

Stack Overflow用户
提问于 2017-09-17 12:57:44
回答 1查看 239关注 0票数 1

我正在承担Euler项目(#188)的一个问题,我撞到了一堵墙。问题的具体说明如下:

我的python解决方案如下:

代码语言:javascript
复制
Q = input()
List1 = []
List2 = []
Answers = []
for i in range(int(Q)):
    List1.append(input())
    List2.append(List1[i].split(" "))
    for j in range(int(List2[i][1])):
        List2[i][0] = int(List2[i][0]) ** int(List2[i][0])
    Answers.append(int(List2[i][0]) % int(List2[i][2]))
for k in range(len(Answers)):
    print(Answers[k])

它对于较小的输入非常有效,但是一旦幂变得非常大,程序就会工作很长时间,以至于我得到了一个超时错误。有没有办法绕过python3的指数运算明显低效的问题,或者我可能做错了什么?如有任何帮助,我们不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2018-10-08 23:55:57

涉及的数字太大了。你正试图强行解决这个问题,这是行不通的--一些涉及到的数字可能会占用数兆字节的空间--甚至是太多的内存,以至于它无法在可观察到的宇宙中运行。Python不能帮助您;有一些解决方案涉及到更聪明的数学。尝试打印一些幂运算结果-例如,3的幂。看看剩下的部分。可能会有一些重复或模式。遵循并概括这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46260804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档