Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

전공공부

[BOJ_2553] 마지막 팩토리얼 수 본문

Study/Problem Solving

[BOJ_2553] 마지막 팩토리얼 수

monitor 2023. 11. 28. 21:47

설명


2*5 인 경우를 배제하고 모든 1,2,3,4 등의 곱하기의 수를 구하기 위해서 식을 구현한다고 생각하고 문제를 풀면된다.

 

다만 1,2,3,4와 같이 2*5가 아닌 경우의 숫자들만 곱해도 Long의 범위를 훌쩍 넘어버리니 아래와 같이 최소한 큰 모듈러 수로 나머지를 사용하는 방식으로 진행했다.

 

만일 모듈러 연산자의 크기가 작다면 앞의 숫자들이 누락이 되어서 마지막 수가 달라 질 수 있는 가능성을 최소화하기 위해서 아래와 같이 모듈러 숫자를 크게 잡았다.

 

코드


import java.util.Scanner;

public class BOJ_2553 {
    public static void main(String[] args) throws Exception{
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        long num = 1;
        for (int i = 1; i <= N; i++){
            num *= i;
            num %= 10000000000L;
            while(num % 10 == 0){
                num /= 10;
            }
        }
        System.out.println(num%10);
    }
}
 

2553번: 마지막 팩토리얼 수

첫째 줄에 N이 주어진다. N은 20,000보다 작거나 같은 자연수 이다.

www.acmicpc.net

'Study > Problem Solving' 카테고리의 다른 글

[BOJ_9421] 소수 상근수  (1) 2023.11.30
[BOJ_2168] 타일 위의 대각선  (1) 2023.11.29
[BOJ_21312] 홀짝 칵테일  (0) 2023.11.27
[BOJ_22493] 수  (1) 2023.11.26
[BOJ_21275] 폰 호석만  (0) 2023.11.26