代码打什么 帮忙写个作业 谢谢了用java写递归 具体要求在下面

SUM(n)=1+2+3+…+n-1+n2.SUM1(n)=1+(1+2)+(1+2+3)+…(1+2+3+…+n-1+n)3.FACT(n)=1*2*3*...*(n-... SUM(n) = 1 + 2 + 3+ … + n-1 + n

2.SUM1(n) = 1 + (1+2) + (1+ 2+ 3) + … (1 + 2 + 3 + … +n-1+n)

3.FACT(n) = 1*2*3* . . . *(n-1) * n

4.FACT_SUM(n) = 1 + 1*2 + 1*2*3 + … + 1*2*3* . . . *(n-1) * n
谢谢各位老表了 帮我一下~~~~
展开
 我来答
离楛vic
2018-09-13 · TA获得超过133个赞
知道答主
回答量:24
采纳率:50%
帮助的人:3.9万
展开全部

看已经有人给出答案了,那我就来一套java8的写法吧。

/**
 * since 1.8
 *
 * @param args
 */
public static void main(String[] args) {
    // 1: SUM(n) = 1 + 2 + 3+ … + n-1 + n
    Function<Long, Long> fn1 = (n) -> Stream.iterate(1L, i -> ++i).limit(n).reduce((a, b) -> a + b).get();

    // 2.SUM1(n) = 1 + (1+2) + (1+ 2+ 3) + … (1 + 2 + 3 + … +n-1+n)
    Function<Long, Long> fn2 = (n) -> Stream.iterate(1L, i -> ++i).limit(n).reduce((a, b) -> a + fn1.apply(b)).get();

    // 3.FACT(n) = 1*2*3* . . . *(n-1) * n
    Function<Long, Long> fn3 = (n) -> Stream.iterate(1L, i -> ++i).limit(n).reduce((a, b) -> a * b).get();

    // 4.FACT_SUM(n) = 1 + 1*2 + 1*2*3 + … + 1*2*3* . . . *(n-1) * n
    Function<Long, Long> fn4 = (n) -> Stream.iterate(1L, i -> ++i).limit(n).reduce((a, b) -> a + fn3.apply(b)).get();

    long x = 10;
    System.out.println(String.format("fn1(%d)=%d", x, fn1.apply(x)));
    System.out.println(String.format("fn2(%d)=%d", x, fn2.apply(x)));
    System.out.println(String.format("fn3(%d)=%d", x, fn3.apply(x)));
    System.out.println(String.format("fn4(%d)=%d", x, fn4.apply(x)));
}
追问
老哥能不能给我个java 直接能用的呢 每一个都是分开的 我实在对这玩意不感兴趣不乐研究 我绝对会采纳的直接能用的话  谢谢了
追答
我写的这段代码每个function都是能直接跑出来结果的,因为这里并不是真正的编辑环境,所以为了减少篇幅集中写到一个main方法里了,如果稍微有一丁点基础的人都知道怎么运行,怎么拆分成4个不同的方法。
如果你连代码都看不懂,那你又怎么知道能不能直接用呢。就算给你了,你知道怎么运行么。。。代码这东西,对于行外人来说给你抄都能抄错;对于行内人来说,只要一个思路足以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
长身_不老
2018-09-13 · 超过24用户采纳过TA的回答
知道答主
回答量:141
采纳率:83%
帮助的人:41.5万
展开全部
//SUM(n) = 1 + 2 + 3+ … + n-1 + n
public static double diGui1(int n){
if(n==0)
return 0;
else if(n==1)
return 1;
else
return diGui1(n-1)+n;
}
//2.SUM1(n) = 1 + (1+2) + (1+ 2+ 3) + … (1 + 2 + 3 + … +n-1+n)
public static double diGui2(int n){
if(n==0)
return 0;
else if(n==1)
return diGui1(1);
else
return diGui2(n-1)+diGui1(n);
}
//3.FACT(n) = 1*2*3* . . . *(n-1) * n
public static double diGui3(int n){
if(n==0||n==1)
return 1;
else
return diGui3(n-1)*n;
}
//4.FACT_SUM(n) = 1 + 1*2 + 1*2*3 + … + 1*2*3* . . . *(n-1) * n
public static double diGui4(int n){
if(n==0)
return 0;
else if(n==1)
return 1;
else
return diGui4(n-1)+diGui3(n);
}
追问
老哥能不能给我个java 直接能用的呢  我实在对这玩意不感兴趣不乐研究 我绝对会采纳的直接能用的话  谢谢了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a小鳄鱼
2018-09-13 · 超过77用户采纳过TA的回答
知道小有建树答主
回答量:152
采纳率:28%
帮助的人:72.7万
展开全部
package test;
import java.util.Random;
import java.util.Scanner;
import com.sun.org.apache.regexp.internal.recompile;
public class Test{
public static void main(String[] args) {
System.out.println(sum(5));
System.out.println(sum1(5));
System.out.println(fact(5));
System.out.println(factSum(4));
}

public static int sum(int n){
if(n!=1){
return n+sum(n-1);
}else{
return 1;
}
}
public static int sum1(int n){
if(n!=1){
return sum1(n-1)+sum(n);
}else{
return 1;
}
}
public static int fact(int n){
if(n!=1){
return n*fact(n-1);
}else{
return 1;
}
}
public static int factSum(int n){
if(n!=1){
return factSum(n-1)+fact(n);
}else{
return 1;
}
}
}
直接可用,亲测通过
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式