대수의 계승 결정
결과가 기본 데이터 유형의 한계를 초과하는 경우 계승 계산이 어려워집니다. 이 기사에서는 임의의 큰 정수의 계승값을 계산하여 솔루션의 모든 자릿수를 표시하는 기술을 제시합니다.
수동 계산 시뮬레이션
GMP와 같은 외부 라이브러리가 없는 경우 , 정수 배열을 사용하여 수동 계승 계산 프로세스를 모방해야 합니다. 이 배열은 각 인덱스가 숫자를 포함하는 큰 숫자를 나타냅니다.
계수 계산 알고리즘
숫자 n의 경우 계승은 다음과 같이 계산됩니다.
구현예
제공된 C 코드는 위 내용을 구현한 것입니다. 알고리즘:
#include <iostream> #include <cstring> int max = 5000; void display(int arr[]) { int ctr = 0; for (int i = 0; i < max; i++) { if (!ctr && arr[i]) ctr = 1; if (ctr) std::cout << arr[i]; } } void factorial(int arr[], int n) { if (!n) return; int carry = 0; for (int i = max - 1; i >= 0; --i) { arr[i] = (arr[i] * n) + carry; carry = arr[i] / 10; arr[i] %= 10; } factorial(arr, n - 1); } int main() { int *arr = new int[max]; std::memset(arr, 0, max * sizeof(int)); arr[max - 1] = 1; int num; std::cout << "Enter the number: "; std::cin >> num; std::cout << "Factorial of " << num << " is :\n"; factorial(arr, num); display(arr); delete[] arr; return 0; }
위 내용은 외부 라이브러리 없이 임의로 큰 숫자의 계승을 어떻게 계산할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!