首页 > 解决方案 > 三角数 Java

问题描述

问题是相同结果有两种类型的代码(三角形数)

1.

           for (int i = 1; i <= 10; i++) {
            int triangular = 0;

            for (int j = 1; j <= i; j++) {
                triangular = triangular + j;
            }
            System.out.println(i + " = " + triangular);

2.

int x =1; 
int triangular = 1;

while(x<=10){


System.out.println(x+ "=" +triangular);
 x++;
triangular= triangular+x;

}

为什么 (1) "int triangualr" 是 0 而 (2) 它是 1 ??? 我不明白

标签: javatriangular

解决方案


在方法 1 中,每次在 for 循环中初始化 int triangular。嵌套 for 循环正在计算三角形的值,然后您正在打印该值

       for (int i = 1; i <= 10; i++) {
            int triangular = 0;

            for (int j = 1; j <= i; j++) {
                triangular = triangular + j;
            }
            System.out.println(i + " = " + triangular);
       }

但是在方法 2 中,在 while 循环的第一行中打印 x=1 的值,然后增加 x 的值

int x =1; 
int triangular = 1;
while(x<=10){
    System.out.println(x+ "=" +triangular);
    x++;
    triangular= triangular+x;
}

因此,在第一种方法中,三角形的值是从 1 开始计算的,而在第二种方法中,三角形的值不是针对第一次迭代计算的


推荐阅读