用c语言编写1000!末尾有多少个零的程序
展开全部
#include <stdio.h>
#include <string.h>
#define MAXN 3000 //经计算器算得1000!约等于4*10^2567,故使用一个3000个元素的数组储存结果。
int f[MAXN];
int main()
{
int i, j, n=1000,count=0;
memset(f, 0, sizeof(f)); //将数组元素全部置零
f[0]=1;
for(i=2; i <= n; i++)
{
int c = 0;
for(j = 0; j < MAXN; j++)
{
int s = f[j] * i + c;
f[j] = s % 10;
c = s / 10;
}
}
printf("1000!计算结果如下:\n");
for(j = MAXN-1; j >= 0; j--)
if(f[j]) break; //跳过前导0
for(i=j; i>=0; i--)
{
printf("%d",f[i]);
}
putchar('\n'); //输出1000!便于观察
//计算1000!末尾0的个数
for(i=0; i<MAXN; i++)
if(f[i]) break;
for(j = i-1; j>=0; j--)
++count;
printf("共有个:%d个0\n",count);
return 0;
}
#include <string.h>
#define MAXN 3000 //经计算器算得1000!约等于4*10^2567,故使用一个3000个元素的数组储存结果。
int f[MAXN];
int main()
{
int i, j, n=1000,count=0;
memset(f, 0, sizeof(f)); //将数组元素全部置零
f[0]=1;
for(i=2; i <= n; i++)
{
int c = 0;
for(j = 0; j < MAXN; j++)
{
int s = f[j] * i + c;
f[j] = s % 10;
c = s / 10;
}
}
printf("1000!计算结果如下:\n");
for(j = MAXN-1; j >= 0; j--)
if(f[j]) break; //跳过前导0
for(i=j; i>=0; i--)
{
printf("%d",f[i]);
}
putchar('\n'); //输出1000!便于观察
//计算1000!末尾0的个数
for(i=0; i<MAXN; i++)
if(f[i]) break;
for(j = i-1; j>=0; j--)
++count;
printf("共有个:%d个0\n",count);
return 0;
}
参考资料: 《算法入门》
2012-04-01
展开全部
#include<stdio.h>
#define n 1000
void main()
{
int i,j=0,k=1;
for(i=1;i<=n;i++)
{
k*=i;
while(k%10==0)
{
k=k/10;//防止溢出
j++;
}
if(k>10000) k=k%10000;//防止溢出
}
printf("zeronum=%d",j);
}
#define n 1000
void main()
{
int i,j=0,k=1;
for(i=1;i<=n;i++)
{
k*=i;
while(k%10==0)
{
k=k/10;//防止溢出
j++;
}
if(k>10000) k=k%10000;//防止溢出
}
printf("zeronum=%d",j);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main()
{
int result=0;
for(int i=1; i<=1000; ++i)
for(int n=i; n%5==0; n/=5)
++result;
printf("%d\n",result);
return 0;
}
int main()
{
int result=0;
for(int i=1; i<=1000; ++i)
for(int n=i; n%5==0; n/=5)
++result;
printf("%d\n",result);
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char *str="1000";
int count=0;
for (int i=0;i!=strlen(str);i++)
{
if (str[i]=='0')
{
count++;
}
}
不知是否是你想要的
int count=0;
for (int i=0;i!=strlen(str);i++)
{
if (str[i]=='0')
{
count++;
}
}
不知是否是你想要的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询