Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program C/C++ untuk mengira bilangan sifar mengekor dalam pemfaktoran nombor

Program C/C++ untuk mengira bilangan sifar mengekor dalam pemfaktoran nombor

WBOY
WBOYke hadapan
2023-08-29 12:29:051396semak imbas

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

Program C/C++ untuk mengira bilangan sifar mengekor dalam pemfaktoran nombor

Algoritma #🎜🎜🎜##🎜 countTrailingZeros (n) Terjemahan bahasa Cina bagi

begin
   count := 0
   for i := 5, (n/i) >= 1, increase i := i * 5, do
      count := count + (n / i)
   done
   return count;
end

Contoh

ialah:

Contoh

#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);
}

Output#🎜🎜🎜🎜

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam