java输入一个数n,计算n的阶乘(5的阶乘=1*2*3*4*5)

求解。麻烦帮忙注释并给下思路... 求解。麻烦帮忙注释并给下思路 展开
 我来答
coco22
高粉答主

2018-03-30 · 说的都是干货,快来关注
知道大有可为答主
回答量:254
采纳率:100%
帮助的人:3.9万
展开全部

1、首先要理解一下阶乘的公式:

n! =n*(n-1)*(n-2)*....*2*1,    5! = 5*4*3*2*1

#include           //头文件stdio.h在新浪博客中无法显示加上就可以了

int main()

{

int t=5,i=4;   //要是求其他的数的阶乘的话,把t的值改为其他数,

//再把i改为(t-1)就行了

while(i>=1)

{

t=t*i;

i--;

}

printf("5的阶乘结果是:%d\n",t);

return 0;

}

2、运行结果如下:

3、上面这种方法虽然能求出结果,但是不能求任意的数,也没有考虑到0!=1,这种情况,我们来改进一下;

#include                      // //头文件stdio.h在新浪博客中无法显示加上就可以了

int main()

{

int n,jc;

int jiecheng(int j);

printf("请输入任意一个整数\n");

scanf("%d",&n);

jc=jiecheng(n);

printf("该数的阶乘结果是:%d\n",jc);

return 0;

}

int jiecheng(int j)

{

int i=j-1;

if(j==0 | j==1)  // 因为0的阶乘是1 ,1的阶乘也是1

j=1;

while(i>1)       //

{

j=j*i;

i--;

}

return(j);

}

4、运行结果如下:

秀才郎5
推荐于2017-11-25 · TA获得超过469个赞
知道小有建树答主
回答量:81
采纳率:71%
帮助的人:37.2万
展开全部
String str="输入一个数n,将计算n的阶乘";

str=JOptionPane.showInputDialog(null, str);
int n=Integer.parseInt(str);//获得输入的数n并转成整数

int s=1;//计算n的阶乘
for(int i=1;i<=n;i++)
{
s*=i;
}
JOptionPane.showMessageDialog(null, s+"", "n的阶乘", 1);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
5599zqc
2014-08-09 · TA获得超过182个赞
知道答主
回答量:29
采纳率:0%
帮助的人:33.1万
展开全部
public int jiecheng(int n){
if(n==0||n==1) return 1;
return n*jiecheng(n-1);
}
上边是函数
调用 int x=jiecheng(n);
这主要用到了递归算法,不停的调用函数本身,知道某个条件时终止函数运行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
野文菜A
2014-08-09 · TA获得超过830个赞
知道小有建树答主
回答量:645
采纳率:100%
帮助的人:514万
展开全部
static int func(int n){
int result=1;
for(int i=2;i<=n;++i)
result*=i;
return result;
}
追问
能解释一下么
追答
static int func(int n){
int result=1; //开始=1
for(int i=2;i<=n;++i) //然后从2乘到这个数,比如5
result*=i; //第一次循环*2,第二次循环*3,直到*5
return result;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式