用java程序写一个用递归和非递归方法求n的阶乘
2个回答
展开全部
递归
public int factorial(int m)
{
if (m < 0)
return 0;
else if ( m == 1)
reteurn 1;
else if (m > 1)
return m * factorial(m-1);
}
非
public int factorial(int m)
{
if (m < 0)
return 0;
else if ( m == 1)
reteurn 1;
else if (m > 1)
{
int sum = 1
for (int i = 2; i <= m; i++)
sum = sum * i;
return sum;
}
}
public int factorial(int m)
{
if (m < 0)
return 0;
else if ( m == 1)
reteurn 1;
else if (m > 1)
return m * factorial(m-1);
}
非
public int factorial(int m)
{
if (m < 0)
return 0;
else if ( m == 1)
reteurn 1;
else if (m > 1)
{
int sum = 1
for (int i = 2; i <= m; i++)
sum = sum * i;
return sum;
}
}
展开全部
public class Fac {
public static void main(String[] args) {
int n = 5;
long fac = digui(n);
long fac2 = nonDigui(n);
}
//循环方法
private static long nonDigui(int n) {
long fac = 1L;
for(int i = 1; i<=n ;i++){
fac = fac * i;
}
return fac;
}
//递归
private static long digui(int n) {
if(n == 1){
return 1;
}
return n * digui(n-1);
}
}
public static void main(String[] args) {
int n = 5;
long fac = digui(n);
long fac2 = nonDigui(n);
}
//循环方法
private static long nonDigui(int n) {
long fac = 1L;
for(int i = 1; i<=n ;i++){
fac = fac * i;
}
return fac;
}
//递归
private static long digui(int n) {
if(n == 1){
return 1;
}
return n * digui(n-1);
}
}
更多追问追答
追问
谢谢啊!方便留一下你的QQ号码,好吗?或者微博名称,我以后有问题私信你。谢谢了。
追答
我不上q
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询