티스토리 뷰

문제 링크 : https://www.acmicpc.net/problem/2553

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    long long N, result=1;
    cin >> N;

    for(int i=1; i<=N; i++)
    {
        result*=i;
        result %= 10000000;
        while(result%10==0)
        {
            result/=10;
        }
    }
    cout << result %10;
    return 0;
}

 

입력받은 N에 대해 팩토리얼 계산을 하되, 0은 모두 지워준다.

그리고 해당 값이 엄청나게 커지기 때문에, 적절한 값으로 모듈러 연산을 해주어야 한다.

너무 작은 값이나 너무 큰 값으로 모듈러 연산을 하면 시간초과가 발생한다.

 

이후 자리 수를 출력해야 하기 때문에 계산된 result에 10을 모듈러 연산하여 출력해주면 된다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
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
31
글 보관함