모든 자릿수가 표시된 임의의 큰 숫자의 계승 계산
임의의 큰 숫자의 계승 계산은 고전적인 알고리즘 문제입니다. 그러나 외부 라이브러리에 의존하지 않고 답의 모든 숫자를 요구하는 경우에는 독특한 문제가 발생합니다. 이 기사에서는 이 과제를 효과적으로 해결하는 방법을 자세히 살펴봅니다.
제안된 솔루션
이 솔루션은 정수 배열을 사용하여 계승을 표현하고 다음과 같이 곱셈을 수행하는 방법을 중심으로 진행됩니다. 우리는 수동으로 해결할 때 그렇게 할 것입니다. 이 접근 방식을 구현하는 코드를 살펴보겠습니다.
int max = 5000; // Display the factorial 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]; } } // Calculate the factorial 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!