C语言求n!(n的阶乘) 非常急!!!!!!

输入一个自然数n,求n!,同时统计结果中有多少个0.麻烦高手帮忙做个可运行的程序,非常感谢!!!... 输入一个自然数n,求n!,同时统计结果中有多少个0. 麻烦高手帮忙做个可运行的程序,非常感谢!!! 展开
 我来答
小孔丞相406
2007-07-08 · TA获得超过3371个赞
知道小有建树答主
回答量:251
采纳率:0%
帮助的人:315万
展开全部
#include "stdio.h"
void main()
{
int fun(int x);
float jc(int x);
int n,i;
float k;
printf("type in the n!\n");
scanf("%d",&n);
i=fun (n);
k=jc (n);
printf("%d! is %10.0f\nthere are %d zero!\n",n,k,i);
}

int fun(int x)
{
int i=0;
while(x!=0)
{
x=x/5;
i+=x;
}
return (i);
}

float jc(int x)
{
float i;
if (x==0||x==1)
i=1;
else
i=jc(x-1)*x;
return (i);
}
阶乘jc()函数是仿照谭浩强的c程序设计编写的,由于位数的关系只能算到12!

求零部分是自己想出来的,用的是n!=1*2*3*4*5*6*7*8*9*10*11……=1*2*3*(2*2)*5*(2*3)*7*(2*2*2)*(3*3)*(2*5)*11……后面的式子中有几个5就有 就会得到几个末位0的原理,自己想一下,这个函数可以算很多数。
mzy100
2007-07-04 · TA获得超过154个赞
知道小有建树答主
回答量:242
采纳率:0%
帮助的人:176万
展开全部
#include<stdio.h>
int jc(int n)
{
if(n)
return n*jc(n-1);
else
return 1;
}
int fun(int m)
{
int t=0;
while(m/10)
if(m%10==0)
{
t++;
m=m/10;
}
return t;
}
void main()
{
int n,m,cnt;
printf("输入一个自然数n:");
scanf("%d",&n);
m = jc(n);
cnt = fun(m);
printf("%d!=%d\n共有%d个0\n",n,m,cnt);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Is_it_right
2007-07-04 · TA获得超过1031个赞
知道小有建树答主
回答量:410
采纳率:0%
帮助的人:410万
展开全部
#include <iostream.h>
main()
{
int i,n,ct=0;
long result=1;
cin>>n;
for(i=n;i>=1;i--)
result=result*i;
cout<<n<<"!="<<result<<endl;
for(;result/10!=0;)
{
if(result%10==0)
{ct++;result=result/10;}
else break;
}
cout<<"共有"<<ct<<"个0"<<endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
辜亭晚示未
2019-05-22 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:28%
帮助的人:1955万
展开全部
#include<stdio.h>
main()
{
int
i,n,sum=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
//这里多了个分号..
sum*=i;
//必须用另外一个变量来存储阶乘的结果.因为i是用来控制循环的.
printf("%d",sum);
getch();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
昌德文别辛
2019-01-08 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:30%
帮助的人:831万
展开全部
#include<stdio.h>
main()
{
int
i,n,sum=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
//这里多了个分号..
sum*=i;
//必须用另外一个变量来存储阶乘的结果.因为i是用来控制循环的.
printf("%d",sum);
getch();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式