我正试图在Codechef中解决这个问题。现在,根据这个问题,如果有10套房子,他可能会犯错误,选择3套连续的房子,或者4套,或者5套。。。或10。现在,从n
房屋中选择m
连续房屋的方法的数量为n-m+1
。所以我必须取n-m+1
和m
的和,从3开始到n
。也就是说,我将从n-2
、n-1
到1的数字相加。在AP中,该值应该是((n-2)(n-1))/2
(通过公式n(n+1)/2
)。这就是这个代码的作用。然而,我收到了一条错误的回复信息。我哪里错了?pow
是用来做模幂运算的,这样数字在任何阶段都不会越界。
testcase = int(raw_input())
m = 10**9 + 7
for i in xrange(0,testcase):
n = int(raw_input())
ans = ((pow(n,2,m)-3*n+2)/2)%m
print ans
你也算这个案子吗?
( * * * * * * * * * * )
^ ^ ^ ^ ^ ^
这只是一个我相信你跳过的例子。(如果我确实正确地遵循了你的算法)
这只是一个暗示,尽管问跑步比赛问题根本不好。