반응형
https://www.acmicpc.net/problem/2553
문제 해결 알고리즘
0이 아닌 마지막 자리수를 출력해야하므로 우선 팩토리얼 계산할 때 마다 뒤에 있는 0을 제거하고,
오버플로우 방지를 위해 6자리정도만 남겨준 후 계속 계산해준다. (이 때, 충분하게 자리 수를 남겨줘야한다.)
그런 후 마지막 자리 수를 출력해준다.
소스 코드
#include <bits/stdc++.h>
using namespace std;
int main(){
int N; cin >> N;
long long result = 1;
for(int i=1;i<=N;i++){
result *= i;
while(result % 10 == 0){
result /= 10;
}
result = result % 1000000;
}
cout << result % 10;
}
반응형
'알고리즘 문제 해결 > BOJ' 카테고리의 다른 글
[에라토스테네스의 체] BOJ 1990 소수인팰린드롬 (0) | 2022.03.17 |
---|---|
[DP] BOJ 2133 타일 채우기 (0) | 2022.03.14 |
[백 트래킹, 브루트 포스] BOJ 1342 행운의 문자열 (0) | 2022.03.08 |
[브루트 포스] BOJ 1105 팔 (0) | 2022.03.05 |
[브루트 포스] BOJ 1254 팰린드롬 만들기 (0) | 2022.03.02 |