반응형

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWuSh2IKmu0DFASy&categoryId=AWuSh2IKmu0DFASy&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

문제의 저작권은 SW Expert Academy에 있습니다.

int로 하면 에러난다. long으로 바꿔줘야함.

package Swea;

import java.util.*;
import java.io.*;

public class 퀴즈 {
	public static long[] sum;
	public static int cnt = 1;
	public static long M = 1000000007;
	public static void main(String[] args) throws Exception {
		System.setIn(new FileInputStream("test.txt"));
		Scanner sc = new Scanner(System.in);
		
		int T = sc.nextInt();
		
		for (int tc = 0; tc < T; tc++) {
			int N = sc.nextInt();
			System.out.println("#" + tc + " " + sigma(N));
		}
	}
	public static long sigma(int n) {
		if(n==1) return 1;
		return(pow(n,n)%M + sigma(n-1)%M)%M;
	}
	public static long pow(int a, int b) {
		if(b==0) return 1;
		if(b==1) return a;
		long t = pow(a,b/2);
		if(b%2 == 0) return (t*t)%M;
		else         return (((t*t)%M)*a)%M;
	}

}
반응형

+ Recent posts