소개:
최근 인터뷰에서 어려운 질문이 나왔습니다. 발생: 임의의 큰 숫자의 계승을 계산하는 동시에 모든 숫자를 표시합니다. GMP와 같은 외부 라이브러리는 편리한 솔루션을 제공하지만 이 작업을 위한 대체 방법을 탐색하는 것이 중요합니다. 여기서는 외부 라이브러리에 의존하지 않고 정수 배열을 활용하여 계승을 표현하는 접근 방식을 제시합니다.
방법:
구현:
#include <iostream> #include <cstring> int max = 5000; // Display all non-zero digits of the array 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 of 'n' and store it in 'arr' 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; }
설명:
이 코드는 계승을 나타내는 정수 배열 'arr'입니다. 'factorial' 함수는 계승을 재귀적으로 계산하여 'arr'에 저장합니다. 'display' 함수는 'arr'의 0이 아닌 숫자를 인쇄하여 계승의 가독성을 보장합니다.
결론:
제시된 접근 방식은 외부 라이브러리를 사용하지 않고 임의로 큰 숫자의 계승을 계산합니다. 배열 기반 표현을 활용하여 계승의 모든 자릿수를 캡처하고 이를 완벽하게 표시합니다. 이 방법은 인터뷰 요구 사항을 충족할 뿐만 아니라 프로그래밍에서 숫자 조작의 기본 원리를 이해하는 것이 중요하다는 점을 강조합니다.
위 내용은 외부 라이브러리 없이 어떻게 임의로 큰 숫자의 계승을 계산하고 표시할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!