原文题目链接:
http://projecteuler.net/problem=120
翻译题目链接:
http://pe.spiritzhang.com/index.php/2011-05-11-09-44-54/122-120a-1n--a1na2
通过人数:7370
题目分析:
这题比较水,可以作为纯数学题。以下给出数学解法。
解题过程:
首先化简(a+1)^n+(a-1)^n mod a^2的结果:
在n为偶数的时候,(a+1)^n+(a-1)^n≡2(mod a^2)
在n为奇数的时候,(a+1)^n+(a-1)^n≡2na(mod a^2)
显然,当n为奇数时,(a+1)^n+(a-1)^n mod a^2才可能取到最大。
2na%a^2 = a(2n%a)
记n=2*k+1
2n%a = (4k+2)%a
显然,若a=4m+3或4m+4,k=m时取到最大;若a=4m+1或4m+2,k=5m+1或2m的时候取到最大。
于是,当a是奇数时,rmax = a^2-a;当a是偶数时,rmax = a^2-2a。
利用等差数列求和公式以及1^2+2^2+...+n^2=n*(n+1)*(2n+1)/6 可以笔算求解。
或者用程序辅助:
int ans=0;
for (int i=3;i<=1000;i++)
{
if (i%2)
ans+=i*i-i;
else
ans+=i*i-2*i;
}
printf("%d",ans);
可以计算出结果:
333082500 虽说没什么必要吧~O(∩_∩)O~
这道题比较简单,完全可以给初中生或者比较厉害的小学生当数学题做~
以上只是我做题时的解法。
如果有更好的解法、更好的思路,欢迎评论讨论~O(∩_∩)O~