蓝桥杯2020年第十一届JavaB组真题题目+解析+代码+答案:7.八次求和

157 阅读1分钟

不要自卑,去提升实力
互联网行业谁技术牛谁是爹
如果文章可以带给你能量,那是最好的事!请相信自己
加油o~

在这里插入图片描述

点击下面链接
蓝桥杯历届真题题目+解析+代码+答案(2013-2020)(JavaA、B、C组)

问题描述:

【问题描述】
给定正整数 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")));
	} 
}