大菜逼
定义一个函数 FactorialZeros,计算一个整数阶乘右端 0 的个数。
Input
测试程序使用多组数据,运行时,首先输入一个整数,表示测试数据的组数;然后每组输入一个 1 到 20 范围的整数,检查输出结果的正确性。
咋一看,只看到了这里
就瞎写了。。。。。。
#include<iostream>
using namespace std;
long long fact(int n)
{
long long temp=1;
for(int i=1;i<=n;i++){
temp*=i;
}
return temp;
}
int main()
{
int a=0,number=0;
long long jiecheng=0;
cin>>number;
for(int i=0;i<number;i++){
int count=0;
cin>>a;
jiecheng=fact(a);
while((jiecheng%10)==0){
count++;
jiecheng/=10;
}
cout<<"case #"<<i<<":"<<endl;
cout<<count<<endl;
}
return 0;
}
然后,提交代码的时候就傻眼了,卧槽???!!!原来要求是写函数的咯。。。
是我想的太简单。。。
再之后,就懂了,就是找5的个数嘛~~~
#include <iostream>
using namespace std;
int GetN_1(int n)
{
if (n < 5)
{
return 0;
}
else
{
return (n / 5 + GetN_1(n / 5));
}
}
int main()
{
cout << GetN_1(1000) << endl;
return 0;
}