Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Kita Boleh Mengira Faktor Nombor Besar Sewenang-wenangnya dan Memaparkan Semua Digit Tanpa Perpustakaan Luaran?

Bagaimanakah Kita Boleh Mengira Faktor Nombor Besar Sewenang-wenangnya dan Memaparkan Semua Digit Tanpa Perpustakaan Luaran?

Susan Sarandon
Lepaskan: 2024-11-29 12:15:13
asal
879 orang telah melayarinya

How Can We Calculate the Factorial of Arbitrarily Large Numbers and Display All Digits Without External Libraries?

Mengira Faktor Nombor Besar Sewenang-wenangnya dengan Semua Digit Ditunjukkan

Mengira faktorial nombor besar sewenang-wenangnya ialah masalah algoritma klasik. Walau bagaimanapun, ia menimbulkan cabaran yang unik jika kita memerlukan semua digit jawapan tanpa bergantung pada perpustakaan luaran. Artikel ini menyelidiki kaedah yang berkesan menangani cabaran ini.

Penyelesaian yang Dicadangkan

Penyelesaian berkisar menggunakan tatasusunan integer untuk mewakili pendaraban faktorial dan melaksanakan sebagai kami lakukan apabila menyelesaikan secara manual. Mari kita periksa kod yang melaksanakan pendekatan ini:

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;
}
Salin selepas log masuk

Penjelasan

  • Susun atur arr mewakili faktorial.
  • faktorial() secara beransur-ansur mendarab pemfaktoran dengan nombor semasa.
  • paparan() memastikan pendahuluan sifar ditinggalkan.

Penyelesaian ini menyediakan pendekatan menyeluruh untuk mengira pemfaktoran nombor besar tanpa menggunakan perpustakaan luaran, memastikan semua digit hasil ditunjukkan.

Atas ialah kandungan terperinci Bagaimanakah Kita Boleh Mengira Faktor Nombor Besar Sewenang-wenangnya dan Memaparkan Semua Digit Tanpa Perpustakaan Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan