/* n!尾数有几个0 */ #include <iostream> using namespace std; void find0(int n); int find(int i,int n); int main(void) { int n; cin>>n; find0(n); return 0; } void find0(int n) { int cnt5=0,cnt2=0; //分析 /* 每次产生一个0有 2*5=10; 10=2*5; */ for(int i=1;i<=n;i++){ // cnt2+=find(i,2); cnt5+=find(i,5); } //cout<<"尾数有"<< (cnt5>cnt2?cnt2:cnt5)<<"个0"<<endl; cout<<"尾数有"<< cnt5 <<"个0"<<endl; } int find(int i,int n){ int cnt=0; while(!(i%n)){ cnt++; i=i/n; } return cnt; }