PROJECTEULER48

http://projecteuler.net/index.php?section=problems&id=48

1^1+2^2+...+1000^1000的最后10位。

题目是比较水的,竟然搞了一下午。。。

本来打算快速幂加上%10^10就行。

但两个数相乘会超int,于是用long long,可还是会超就用unsigned long long,最大是2^64 - 1 = 18446744073709551615.

10^19级别的,起初以为这个数有问题,因为int最大是10^9级别的,我给当成是10^10级别的,平方后不符。

但尽管如此还是会溢出,悲剧,因为两个10位数相乘最大会有(10^10-1)*(10^10-1)<10^20,也就是说是20位的数,会超过2^64的。

在18^18处就溢出了。然后就写大整数乘法,就过掉了,悲剧。

 

你可能感兴趣的:(project)