我写了一段代码 但由于类型取值范围受限 只能输入1-20 的数字 代码如下,供同学参考
#include<stdio.h>
#include<stdlib.h>
#define N 3
void Count_0(double *f,int *n)//计算0个数
{
int i;
double t[N];
for(i=0;i<N;i++)
{
n[i]=0;
t[i]=f[i];
while(((long long)t[i])%10==0)
{n[i]++;t[i]=t[i]/10;}
}
}
void Count_f(int *n,double *f)//计算阶乘
{
int i,j;
for(i=0;i<N;i++)
{
f[i]=n[i];
for(j=n[i]-1;j>1;j--)
f[i]*=j;
}
}
int main()
{
int n[N];//n>=1&&n<=20
double f[N];//factorial
int i=0;
while(i<N)
{scanf("%d",&n[i]);i++;}
Count_f(n,f);
for(i=0;i<N;i++)
printf("%0.0lf\n",f[i]);
putchar(10);
Count_0(f,n);
for(i=0;i<N;i++)
printf("%d\t",n[i]);
putchar(10);
system("pause");
return 0;
}
望一同学习