티스토리 뷰
문제 링크 : 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을 모듈러 연산하여 출력해주면 된다.
'Problem Solving > 백준' 카테고리의 다른 글
| [백준 14730번] 謎紛芥索紀 (Small) (C++) (0) | 2025.07.03 |
|---|---|
| [백준 1564번] 팩토리얼 5 (C++) (0) | 2025.07.02 |
| [백준 20186번] 수 고르기 (C++) (0) | 2025.06.29 |
| [백준 10837번] 동전 게임 (C++) (0) | 2025.06.28 |
| [백준 15954번] 인형들 (C++) (0) | 2025.06.26 |