繁体   English   中英

加快python中的代码

[英]Speed up code in python

N,M作为输入,最初给出N个项目,可以标记这些项目并交换为新的项目,这样,对于M个这些标记项目给出了1个新项目,问题是要找到可以容纳的最大项目数以这种方式被标记。 例如:

输入: 10 2 N = 10,M = 2
然后输出为: 10 + 5 + 2 + 1 + 1因为
首先标记给定的10(N)个项目,然后将这10个项目全部换成5个新项目(N / M)并标记,
然后将其中4个交换(另存1个以备将来使用)换成2个新标记,
然后2换成1个新的,这个新的标记为
连同保存的1交换为新的1并标记。

Constraints:

1 <= N <= 1000

2 <= M <= 1000

这是我尝试的:

n,m = map(int,raw_input().split())
s = n
aux = 0
while n!=1:
    aux = n%m
    n /= m
    s +=n
    n +=aux
print s

但是,要通过法官实在太慢了。 我如何加快速度? 还有其他算法可以做到这一点吗?

n,m = map(int,raw_input().split())
s = n
aux = 0
while n>=m:
    n, aux = divmod(n, m)
    s +=n
    n +=aux
print s

循环的终止条件是错误的,并且应为当前值<m,因为我们无法获得新的物品,因为我们拥有的酒糟比剩下的M个标记物品更糟。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM