Java 蓝桥杯 B组 试机题 G: 八次求和
时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
【问题描述】
给定正整数 n, 求 1的八次方,2的八次方,3的八次方,4的八次方、、、一直到n的八次方的和对123456789取模的结果 。其中 mod 表示取
余。
【输入格式】
输入的第一行包含一个整数 n。
【输出格式】
输出一行,包含一个整数,表示答案。
【样例输入】
2
【样例输出】
257
【样例输入】
987654
【样例输出】
43636805
【评测用例规模与约定】
对于 20% 的评测用例,1 ≤ n ≤ 20。
对于 60% 的评测用例,1 ≤ n ≤ 1000。
对于所有评测用例,1 ≤ n ≤ 1000000。
/** 试题 G: 八次求和 时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
【问题描述】 给定正整数 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。*/
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int mod=123456789;
Scanner s = new Scanner(System.in);
int n=s.nextInt();long result=0;
for(long i=1;i<=n;i++){//遍历1~n
long temp=1;
for(int j=1;j<=4;j++){//对每一个 i 进行八次乘方,四次循环,每次循环里面计算一次平方
temp =(temp*((i*i) %mod))%mod; //计算平方并取模,防止溢出 }
result=(result+temp)%mod;//把每一次 i 循环得到的八次方结果汇总到变量 result 中。
}
System.out.println(result);//打印输出 resualt
}
}

该博客介绍了一道编程题目,要求使用Java计算从1到n的整数八次方和对123456789取模的结果。程序通过双重循环实现,先计算每个数的平方再平方,最后累加并取模,确保结果不会溢出。样例输入和输出展示了不同规模数据的处理情况。
2277

被折叠的 条评论
为什么被折叠?



