试图获得三角形数字

时间:2016-10-16 19:50:30

标签: java for-loop

问题是"写一个复制底部显示的样本运行的程序,它显示n的每个值从1到10的前n个整数之和。如输出所示,这些数字可以排列成三角形,因此称为三角形数字 1 = 1
1 + 2 = 3
1 + 2 + 3 = 6
1 + 2 + 3 + 4 = 10
1 + 2 + 3 + 4 + 5 = 15
1 + 2 + 3 + 4 + 5 + 6 = 21
1 + 2 + 3 + 4 + 5 + 6 + 7 = 28
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 = 36
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55"



我能够输出1 2 3 4 5 ...到10,但我无法弄清楚如何使它看起来像上面的三角形并使其添加下一个连续数字。我假设我错过了一些非常明显的东西。

import java.util.Scanner;
public class prob3
{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        for (int n = 1; n <= 10; n++) {
            for (int i = n; i <= n; i++){

            System.out.println(n);
        }
    }
}
}

2 个答案:

答案 0 :(得分:1)

您的问题是您只使用这些数字打印整个行。 你打印:

1

2

3

但你需要像

这样的东西

1 = 1

1 + 2 = 3

相反,您需要累积要打印的内容,例如:

StringBuilder builder = new StringBuilder();
for (int i = n; i <= n; i++) {
  builder.append(n);
  builder.append("+");...
  System.out.println(builder.toString() + "=" + sum);
}

以上只是为了让你前进;因为还有一些东西缺失,你将不得不使用:

A)确定如何使用StringBuilder来记住&#34;您可以重用的前一行的那一部分!

B)缺少总和的计算(因为它也在你的代码中!)

答案 1 :(得分:0)

将每行的处理拆分为辅助方法。

GWT.debugger();