티스토리 뷰

백준/실버

[백준 1564번] 팩토리얼 5 (C++)

게임개발기원 2025. 7. 2. 17:54

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

#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;
        while(result%10==0)
        {
            result/=10;
        }
        result %= 1000000000000;
    }
 
    cout << setw(5) << setfill('0') << result % 100000 << "\n";
    return 0;
}

 

백준 2553번 마지막 팩토리얼 수와 유사한 문제이다.

뒤에 출력하는 자릿수만 다른 형태이다.

 

값이 더 크기에 모듈러 연산하는 값도 확장해준다.

그리고 출력할 때는 5자리에 맞춰 100000로 모듈러한 값을 출력한다.

이때 주의할 것은 맨 앞이 0인 경우 생략되어 나온다.

따라서 이를 0으로 채워주어야 한다.

 

C++에서는 setw(5)로 5자리 맞추고, settill('0')로 남은 자리 0으로 채우는 방법을 사용했지만,

 printf("%05lld\n", result % 100000); 를 사용하여 더 간단하게도 가능하다.

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