Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取旧数字为1+;(1+;2)+;(1+;2+;3)++;(1+;2+;3+;n)_Java_Loops_For Loop - Fatal编程技术网

Java 获取旧数字为1+;(1+;2)+;(1+;2+;3)++;(1+;2+;3+;n)

Java 获取旧数字为1+;(1+;2)+;(1+;2+;3)++;(1+;2+;3+;n),java,loops,for-loop,Java,Loops,For Loop,我正在努力做到这一点: 1 + (1 + 2) + (1 + 2 + 3) + ... + (1 + 2 + 3 + ... + n) 我已经得到了这个结果:- (1 + 2) + (2 + 3) 使用此代码: int n = 8; for (int i = 1; i < n; i++){ int j = i + 1; System.out.print("(" + i + " + " + j + ")"); } int n=8; 对于(int i=1;i

我正在努力做到这一点:

1 + (1 + 2) + (1 + 2 + 3) + ... + (1 + 2 + 3 + ... + n)
我已经得到了这个结果:-

(1 + 2) + (2 + 3)
使用此代码:

int n = 8;
for (int i = 1; i < n; i++){
     int j = i + 1;
     System.out.print("(" + i + " + " +  j + ")");
}
int n=8;
对于(int i=1;i

如何获得最佳结果?

您需要两个这样的循环:

int n = 8;

String del;
String del2 = "";

for (int i = 1; i <= n; i++) {
    System.out.print(del2 + "(");
    del = "";
    for (int j = 1; j <= i; j++) {
        System.out.print(del + j);
        del = " + ";
    }
    System.out.print(")");
    del2 = " + ";
}
int n=8;
字符串del;
字符串del2=“”;

对于(int i=1;i您需要两个这样的循环:

int n = 8;

String del;
String del2 = "";

for (int i = 1; i <= n; i++) {
    System.out.print(del2 + "(");
    del = "";
    for (int j = 1; j <= i; j++) {
        System.out.print(del + j);
        del = " + ";
    }
    System.out.print(")");
    del2 = " + ";
}
int n=8;
字符串del;
字符串del2=“”;

对于(int i=1;i将
j
的声明移动到循环之前,并用
0
初始化它,然后只需将当前
i
添加到
j

这能解决什么问题?–AKSW

这将计算方程的和

要打印方程式,您也只需要一个循环:

int n = 8;
StringBuilder equation = new StringBuilder("1");
StringBuilder equationGroup = new StringBuilder("1");

for (int i = 2; i < n; i++) {
    equationGroup.append(" + ");
    equationGroup.append(i);
    equation.append(" + (");
    equation.append(equationGroup.toString());
    equation.append(")");
}
System.out.println(equation.toString());
int n=8;
StringBuilder方程=新StringBuilder(“1”);
StringBuilder equationGroup=新StringBuilder(“1”);
for(int i=2;i
j
的声明移动到循环之前,并用
0
初始化它,然后只需将当前的
i
添加到
j

这能解决什么问题?–AKSW

这将计算方程的和

要打印方程式,您也只需要一个循环:

int n = 8;
StringBuilder equation = new StringBuilder("1");
StringBuilder equationGroup = new StringBuilder("1");

for (int i = 2; i < n; i++) {
    equationGroup.append(" + ");
    equationGroup.append(i);
    equation.append(" + (");
    equation.append(equationGroup.toString());
    equation.append(")");
}
System.out.println(equation.toString());
int n=8;
StringBuilder方程=新StringBuilder(“1”);
StringBuilder equationGroup=新StringBuilder(“1”);
for(int i=2;i
如果你采用递归方法,你必须将其视为另一个递归中的递归
添加(i,n)
生成1和(1+2)和(1+2+3)直到(1+2+3…n)。然后
和(i,n)
将它们递归地相加

public static int add(int i, int n){
    if(i == n){
        return n;
    }
    return i + add(i+1,n);
}

public static int sum(int i, int n){
    if(i == n){
        return add(0,n);
    }
    return add(0, i) + sum(i+1,n);
}

public static void main(String[] args){
    int n = 8;
    System.out.print(sum(0, n));
}

如果你采用递归方法,你必须把它看作是另一个递归中的递归
add(i,n)
生成1和(1+2)和(1+2+3)直到(1+2+3…n)。然后
和(i,n)
将它们递归地相加

public static int add(int i, int n){
    if(i == n){
        return n;
    }
    return i + add(i+1,n);
}

public static int sum(int i, int n){
    if(i == n){
        return add(0,n);
    }
    return add(0, i) + sum(i+1,n);
}

public static void main(String[] args){
    int n = 8;
    System.out.print(sum(0, n));
}

好的,谢谢@YCF_L的回答,这是正确的答案,但这是一个完整的编辑后,我发布了它,以防有人需要完整的解决方案:

    int n = 8;
    String del;
    String delPlus = "";
    String rightPract = "", leftPract = "";
    for (int i = 2; i < n; i++) {
        System.out.print(delPlus + rightPract);
        del = "";
        for (int j = 1; j < i; j++) {
            System.out.print(del + j);
            del = " + ";
        }
        System.out.print(leftPract);
        delPlus = " + ";
        rightPract = "(";
        leftPract = ")";
    }

好的,谢谢@YCF_L的回答,这是正确的答案,但这是一个完整的编辑后,我发布了它,以防有人需要完整的解决方案:

    int n = 8;
    String del;
    String delPlus = "";
    String rightPract = "", leftPract = "";
    for (int i = 2; i < n; i++) {
        System.out.print(delPlus + rightPract);
        del = "";
        for (int j = 1; j < i; j++) {
            System.out.print(del + j);
            del = " + ";
        }
        System.out.print(leftPract);
        delPlus = " + ";
        rightPract = "(";
        leftPract = ")";
    }


提示:您可能需要2个loops@aoiee我只需要用循环来解它。你确定它不是
1+(1+2)+(1+2+3)+…+(1+2+3++…+n)吗
?@CarlosHeuberger嗯,这似乎是一个常见的循环,我需要它。正如前面所说,两个简单的循环,一个总是从
1
n
,一个外部循环增加
n
提示:你可能需要2个loops@aoiee我只需要用循环来解决它。你确定它不是
1+(1+2)+(1+2+3)吗+…+(1+2+3+…+n)
?@CarlosHeuberger嗯,这似乎是一个常见的循环,我需要它。正如前面所说,两个简单的循环,一个总是从
1
n
,一个外循环增加
n
,可以解决什么问题?如果没有第二个循环,它怎么工作?@AKSW这可能只是为了解决数学公式a、 不构建可以解决什么问题的字符串?如果没有第二个循环,该如何工作?@AKSW这可能只是为了解决数学公式,而不是构建string@YCF_L,我的意思是两个for循环都应该是
sry,这是一个缺少的点击。@YCF_L,我的意思是两个for循环都应该是
sry,这是一个缺少的点击。