Codechef でこの問題を解決しようとしています。質問によると、家が 10 ある場合、連続する家を 3 つ選択するか、4 つ、5 つ、...、または 10 のいずれかを選択することで間違いを犯す可能性がm
ありn
ますn-m+1
。したがって、 を 3 から まで合計n-m+1
する必要があります。つまり、 から 1 までの数値を加算しています。AP 内にあるため、値は(式によって) になるはずです。これがこのコードの機能です。ただし、間違った応答メッセージが表示されます。私はどこで間違っていますか?は剰余累乗を行うためのもので、数値がどの段階でも範囲外にならないようにします。m
n
n-2
n-1
((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