JavaブルーブリッジカップグループBテスト問題G:8つの合計

JavaブルーブリッジカップグループBテスト問題G:8つの合計

制限時間:1.0秒メモリ制限:512.0MBこの質問の合計スコア:20ポイント

【問題点の説明】

正の整数nが与えられた場合、8乗1、8乗2、8乗3、8乗4 、、、およびモジュロ123456789の結果を求めます。それらの中で、modは
残りを取ることを意味します
【入力形式】入力
の1行目に整数nが含まれています。
【出力形式】
回答を表す整数を含む1行を出力します。
[サンプル入力]
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
	}
}

友情のつながり、クリックしてください

おすすめ

転載: blog.csdn.net/DAurora/article/details/109066639