问题描述:
【问题描述】
给定正整数 n, 求 1^8 + 2^8 +···+ n^8 mod 123456789 。其中 mod 表示取余。
【输入格式】
输入的第一行包含一个整数 n。
【输出格式】
输出一行,包含一个整数,表示答案。
【样例输入】
2
【样例输出】
257
【样例输入】
987654
【样例输出】
43636805
【评测用例规模与约定】
对于 20% 的评测用例,1≤n≤20。
对于 60% 的评测用例,1≤n≤1000。
对于所有评测用例,1≤n≤1000000。
解题思路:
> 本题可以调用BigInteger.pow()求幂数,如果用Math包里面的pow()可能会溢出,不好处理 > 其余的没什么技术水平
代码:
public class Main { public static void main(String[] args){ Scanner sc=new Scanner(System.in); BigInteger sum=BigInteger.ZERO; int n=sc.nextInt(); for(int i=1;i<=n;i++) { BigInteger b=BigInteger.ONE; sum=sum.add(new BigInteger(i+"").pow(8)); } System.out.println(sum.mod(new BigInteger("123456789"))); } }