팩토리얼5

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

 

1564번: 팩토리얼5

첫째 줄에 정수 N이 주어진다. N은 1,000,000보다 작거나 같다. 또, 9보다 크거나 같다.

www.acmicpc.net

 

입력받은 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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기