여기서는 마지막 두 자리를 구하는 방법을 살펴보겠습니다. 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까지의 계승 수에 대한 차트를 만들 수 있습니다.
다음 단계를 사용하여 이 문제를 해결할 수 있습니다. −
- 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