欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-09 18:32:39
不要自卑,去提升实力互联网行业谁技术牛谁是爹如果文章可以带给你能量,那是最好的事!请相信自己加油o~ 点击下面链接蓝桥杯历届真题题目+解析+代码+答案(2013-2020)(JavaA、B、C组)问题描述:【问题描述】给定正整数 n, 求 1^8 + 2^8 +···+ n^8 mod 123456789 。其中 mod 表示取余。【输入格式】输入的第一行包含一个整数 n。【输出格式】输出一行,包含一个整数,表示答案。【样例输入】2【样例输出】257【样例输入】9.....

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

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

点击下面链接
蓝桥杯历届真题题目+解析+代码+答案(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")));
	} 
}

本文地址:https://blog.csdn.net/m0_47256162/article/details/110496035