Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++를 사용하여 N 계승의 합에서 마지막 두 자리를 찾습니다.

<시간/>

여기서는 마지막 두 자리를 구하는 방법을 살펴보겠습니다. N 계승의 합에 대한 단위 자릿수와 십 자릿수입니다. 따라서 N =4이면 1이 됩니다! + 2! + 3! + 4! =33. 따라서 단위 자리는 3이고 10자리는 3입니다. 결과는 33입니다.

이것을 분명히 보면 N> 5의 계승으로 단위 자리는 0이므로 5 이후에는 단위 자리를 변경하는 데 기여하지 않습니다. N> 10 이후에는 10자리가 0으로 유지됩니다. N =10 이상이면 00이 됩니다. N =1에서 10까지의 계승 수에 대한 차트를 만들 수 있습니다.

C++를 사용하여 N 계승의 합에서 마지막 두 자리를 찾습니다.

다음 단계를 사용하여 이 문제를 해결할 수 있습니다. −

  • n의 값이 10보다 작으면 (1! + 2! + … + n!) mod 10
  • 그렇지 않고 n의 값이 10보다 크거나 같으면 (1! + 2! + … + 10!) mod 10 =13

예시

#include<iostream>
#include<cmath>
using namespace std;
int getTenAndUnitPlace(long long N) {
   if (N <= 10) {
      long long ans = 0, factorial = 1;
      for (int i = 1; i <= N; i++) {
         factorial = factorial * i;
         ans += factorial;
      }
      return ans % 100;
   }
   return 13;
}
int main() {
   for(long long i = 1; i<15; i++){
      cout << "Ten and Unit place value of sum of factorials when N = "<<i<<" is: " <<getTenAndUnitPlace(i) << endl;
   }
}

출력

Ten and Unit place value of sum of factorials when N = 1 is: 1
Ten and Unit place value of sum of factorials when N = 2 is: 3
Ten and Unit place value of sum of factorials when N = 3 is: 9
Ten and Unit place value of sum of factorials when N = 4 is: 33
Ten and Unit place value of sum of factorials when N = 5 is: 53
Ten and Unit place value of sum of factorials when N = 6 is: 73
Ten and Unit place value of sum of factorials when N = 7 is: 13
Ten and Unit place value of sum of factorials when N = 8 is: 33
Ten and Unit place value of sum of factorials when N = 9 is: 13
Ten and Unit place value of sum of factorials when N = 10 is: 13
Ten and Unit place value of sum of factorials when N = 11 is: 13
Ten and Unit place value of sum of factorials when N = 12 is: 13
Ten and Unit place value of sum of factorials when N = 13 is: 13
Ten and Unit place value of sum of factorials when N = 14 is: 13