1、2008!尾数有多少个零
其实就是遍历1到2008,求每个数包含的因数5的总个数
#include<stdio.h> #include <iostream.h> #define NUM 2008 //方法一 int find5(int num) { int ret=0; while(num%5==0) { num/=5; ret++; } return ret; } //方法二 int numZero(int n) { int count=0,reminder,business;//余数reminder,商business int i,k; //i为循环次数,k为5的倍数 for (i=1;(k=5*i)<=n;i++) { reminder=k%5; //余数 business=k/5; //商 while(reminder==0) //以余数作为过滤条件 { count++; reminder=business%5; //继续取余数和求商 business=business/5; if (business==0) { break; } } } return count; } int main() { int result=0; for(int i=5;i<=NUM;i+=5) { result+=find5(i); } cout<<result<<endl; cout<<numZero(NUM)<<endl; return 0; }