1.思路难以想到,既可以利用递归的方法来做,也可以用一种更好的方法来做,反正都是找因子5。
递归公式:
F(n) = n/5 + f(n/5)
递推代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
int n,m,t;
double s;
cin>>n;
while(n--)
{
s=1;
t=0;
cin>>m;
while(m>=5)
{
t+=m/5;
m=m/5;
}
printf("%d\n",t);
}
return 0;
}
另一种方法(效率更高):
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
int n,m,t;
double s;
cin>>n;
while(n--)
{
s=1;
t=0;
cin>>m;
for(int i=5; i<=m; i=i*5)
{
t=t+m/i;
}
printf("%d\n",t);
}
return 0;
}