Di sini kita akan belajar cara mengira bilangan jejak 0s dalam hasil pemfaktoran sebarang nombor. Jadi jika n = 5, maka 5! =120. Hanya ada satu di belakang 0. Untuk 20!, ia akan menjadi 4 sifar sebagai 20 = 2432902008176640000.
Cara paling mudah ialah mengira faktorial dan mengira 0. Tetapi untuk nilai n yang lebih besar, pendekatan ini gagal. Jadi kita akan mengambil pendekatan lain. Jika faktor perdana ialah 2 dan 5, maka sifar tertinggal akan muncul. Jika kita mengira 2 dan 5, kita dapat hasilnya. Untuk melakukan ini, kami akan mengikuti peraturan ini.
Mengekor 0 = kiraan 5 dalam faktorial(n) faktor perdana
begin count := 0 for i := 5, (n/i) >= 1, increase i := i * 5, do count := count + (n / i) done return count; end
#include <iostream> #include <cmath> #define MAX 20 using namespace std; int countTrailingZeros(int n) { int count = 0; for (int i = 5; n / i >= 1; i *= 5) count += n / i; return count; } main() { int n = 20; cout << "Number of trailing zeros: " << countTrailingZeros(n); }
Atas ialah kandungan terperinci Program C/C++ untuk mengira bilangan sifar mengekor dalam pemfaktoran nombor. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!