전공공부
[BOJ_2553] 마지막 팩토리얼 수 본문
설명
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 |