팩토리얼5
문제 링크: https://www.acmicpc.net/problem/1564
입력받은 n의 팩토리얼 과정은 동일하다.
그리고 뒤에 나오는 0은 읽지 않을것이므로 없애준다.
그 후 적당히 큰 수를 잘라서 저장한다.
마지막 출력할 때 5자리로 짤라서 출력을 한다.
정수 출력에서 앞자리 0은 출력을 안하므로 printf("%05lld\n", fiveDigit);
로 5자리를 채운다.
-
정답 코드
#include<iostream> using namespace std; int main() { int n; scanf_s("%d", &n); unsigned long long int fiveDigit = 1; for (int i = n; i >= 1; i--) { unsigned long long int N = fiveDigit * i; while ((N % 10) == 0) N /= 10; fiveDigit = N % 1000000000000; } fiveDigit %= 100000; printf("%05lld\n", fiveDigit); return 0; }
'ProblemSolving' 카테고리의 다른 글
[BOJ] 1074_Z (0) | 2021.02.02 |
---|---|
[BOJ] 1309_동물원 (0) | 2021.02.01 |
[BOJ] 1927_최소 힙 (0) | 2021.01.29 |
[BOJ] 1106_호텔 (1) | 2021.01.28 |
[BOJ] 1149_RGB거리 (0) | 2021.01.27 |
최근댓글