Problema de prueba G del grupo B de la copa Java Blue Bridge: ocho sumas

Problema de prueba G del grupo B de la copa Java Blue Bridge: ocho sumas

Límite de tiempo: 1.0 s Límite de memoria: 512.0 MB Puntaje total para esta pregunta: 20 puntos

【Descripción del problema】

Dado un número entero positivo n, encuentre la octava potencia de 1, la octava potencia de 2, la octava potencia de 3, la octava potencia de 4, ,, y el resultado de módulo 123456789. Entre ellos, mod significa tomar
resto.
[Formato de entrada]
La primera línea de entrada contiene un número entero n.
[Formato de salida]
Muestra una línea, incluido un número entero, que representa la respuesta.
[Entrada de muestra]
2
[Salida de muestra]
257
[Entrada de muestra]
987654
[Salida de muestra]
43636805
[Escala de casos de uso de evaluación y convenciones]
Para el 20% de los casos de uso de evaluación, 1 ≤ n ≤ 20.
Para el 60% de los casos de uso de evaluación, 1 ≤ n ≤ 1000.
Para todos los casos de uso de evaluación, 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
	}
}

Conexión de amistad, haga clic en

Supongo que te gusta

Origin blog.csdn.net/DAurora/article/details/109066639
Recomendado
Clasificación