Pengenalan:
Dalam temu bual baru-baru ini, soalan yang mencabar timbul: mengira faktorial nombor yang besar secara sewenang-wenangnya sambil memaparkan semua digit. Walaupun perpustakaan luaran seperti GMP menawarkan penyelesaian yang mudah, adalah penting untuk meneroka kaedah alternatif untuk tugas ini. Di sini, kami membentangkan pendekatan yang menggunakan tatasusunan integer untuk mewakili faktorial tanpa bergantung pada perpustakaan luaran.
Kaedah:
Pelaksanaan:
#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; }
Penjelasan:
Kod ini menggunakan tatasusunan integer 'arr' untuk mewakili faktorial. Fungsi 'faktorial' secara rekursif mengira faktorial dan menyimpannya dalam 'arr'. Fungsi 'paparan' mencetak digit bukan sifar 'arr', memastikan kebolehbacaan faktorial.
Kesimpulan:
Pendekatan yang dibentangkan menunjukkan kaedah untuk mengira faktorial bagi nombor yang besar secara sewenang-wenangnya tanpa menggunakan perpustakaan luar. Ia menggunakan perwakilan berasaskan tatasusunan untuk menangkap semua digit faktorial dan memaparkannya dalam kemuliaan penuhnya. Kaedah ini bukan sahaja memenuhi keperluan temu duga tetapi juga menekankan kepentingan memahami prinsip asas manipulasi nombor dalam pengaturcaraan.
Atas ialah kandungan terperinci Bagaimanakah Kita Boleh Mengira dan Memaparkan Faktor Nombor Besar Sewenang-wenangnya Tanpa Perpustakaan Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!