代码打什么 帮忙写个作业 谢谢了用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
谢谢各位老表了 帮我一下~~~~ 展开
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
谢谢各位老表了 帮我一下~~~~ 展开
3个回答
展开全部
看已经有人给出答案了,那我就来一套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个不同的方法。
如果你连代码都看不懂,那你又怎么知道能不能直接用呢。就算给你了,你知道怎么运行么。。。代码这东西,对于行外人来说给你抄都能抄错;对于行内人来说,只要一个思路足以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//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);
}
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 直接能用的呢 我实在对这玩意不感兴趣不乐研究 我绝对会采纳的直接能用的话 谢谢了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
}
}
直接可用,亲测通过
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;
}
}
}
直接可用,亲测通过
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询