永发信息网

用Java迭代的方式实现阶乘的和

答案:3  悬赏:50  手机版
解决时间 2021-02-23 18:39
  • 提问者网友:低吟詩仙的傷
  • 2021-02-22 19:53
用Java迭代的方式实现阶乘的和
最佳答案
  • 五星知识达人网友:蕴藏春秋
  • 2021-02-22 20:05
public static void main(String[] args) {
System.out.println(jiecheng(4));
}
public static int jiecheng(int n){
if(n == 1){
return 1;
}

int a = 1;
for(int i = n;i>1;i--){
a *=i;
}
return a+jiecheng(n-1);
}
全部回答
  • 1楼网友:第四晚心情
  • 2021-02-22 22:33
public static int factorial(int param){
if (param == 1){
return 1;
}
return param+factorial(param-1);
}

public static void main(String[] args) {
System.out.println(factorial(4));
}
//用递归实现的追问大哥你这个是从1加到n吧。。
我这题目是阶乘,然后相加。追答你把那个加好改成乘不就好了?
public static int factorial(int param){
if (param == 1){
return 1;
}
return param*factorial(param-1);
}追问额,你这样只是实现了n!
我想要的是n!+(n-1)!+...2!追答好吧,不是很明白这题目什么意思。
楼下的那个貌似已经解决你的问题了。追问貌似是唉,谢谢!
  • 2楼网友:蕴藏春秋
  • 2021-02-22 21:31
public class test {
    public static int fact(int x) {
        int result = 1;
        while (x > 0) {
            result *= x;
            x--;
        }
        return result;
    }
    public static int factSum(int x) {
        int resultSum = 0;
        for (int i = 1; i <= x; i++) {
            int tmpSum = fact(i);
            resultSum += tmpSum;
        }
        return resultSum;
    }
    public static void main(String[] args) {
        System.out.print(factSum(4));
    }
}
感觉你的问题没有说清楚啊,你是想输入4然后返回1!+2!+3!+4!.的结果吗?还是?如果是前者就是我的代码了。
追问写个通用的方法就行,至于怎么调用都无所谓。
另外你这个写的是递归的方法吧,我想的是怎样写个迭代的方法。追答我这是递归。。。我哪一步递归调用了。。。你可以把你写好的递归代码贴出来,我帮你换成迭代的,还是不清楚你要的是怎么样的一个和
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯