projecteuler No.120 Square remainders

原文题目链接:

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)^n2(mod a^2)

在n为奇数的时候,(a+1)^n+(a-1)^n2na(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~



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值