编程思想:
由于2*5=10
并且1000!能被2整除肯定比能被5整除的多,因此只要算出1000!中能被5整除的数即可。
按照正常思维应该是1000/5=200
1000/25=40
1000/125=8
1000/625=1
因此1000!中总共有200+40+8+1=249个0
编程实现:
假设输入的数是n,求n!求出的数字后多少个0。
#include <cstdlib>
#include <iostream>
using namespace std;
void zero(int n) {
int result = 0;
int temp = n;
while (n!=0){
n=n/5;
result+=n;
}
printf("\nThere are %d zeros in the backwards of %d!\n",result,temp);
}
int main(int argc, char *argv[])
{
int n;
printf("Please enter a number:");
scanf("%d",&n);
while (n<=0) {
printf("Please enter a number > zero:");
scanf("%d",&n);
printf("\n");
}
zero(n);
system("PAUSE");
return EXIT_SUCCESS;
}
此程序运行在Dev C++ 4.9.2.2中。