Java 输入直角三角形的行数实现有规律地打印直角三角形

摘要:
  今天在论坛看到一位网友的问题:java多重循环相关
原文如下:java多重循环相关

求解问题如下:

怎么让第三列及以后也像第二列一样,实现顺序输出?
最终希望实现的效果图:
在这里插入图片描述

这段代码该怎么改?

import java.util.Scanner;
 
public class test6 {
    public static void main(String[] args) {
        //接收系统输入一个数,该数为展示的列数,按照如下内容输出结果,注意顺序
        Scanner input = new Scanner(System.in);
        System.out.print("请输入直角三角形的行数:");
        int line = input.nextInt();
        int sum=0;
        // 根据行数生成三角形,每行星号个数是行数的2倍+1
        for(int i = 1; i < line; i++){
            for(int j = 0; j < i+1; ){
                System.out.print(i+"\t");
                break;
            }
            for (int k = i-1; k >=1; k--) {
                if (k<i-1) {
                    sum=sum+i+line;
                }else {
                    sum=i+line-2;
                }
                 
                System.out.print(sum+"\t");
            }
            System.out.println();
        }
        input.close();
    }
}

代码运行图:
在这里插入图片描述

怎么样。看完这道题,你心里有答案了吗?

解决方案如下:

下面是程序羊的解决方案,仅供参考:
参考代码:

package com.gx.demo;

import java.util.Scanner;

public class Test {
	public static void main(String[] args) {
		// 接收系统输入一个数,该数为展示的列数,按照如下内容输出结果,注意顺序
		Scanner input = new Scanner(System.in);
		System.out.print("请输入直角三角形的行数:");
		int line = input.nextInt();
		int sum = 0;

		for (int i = 1; i <= line; i++) {
			// 输出第一列
			for (int j = 0; j < i;) {
				System.out.print(i + "\t");
				break;
			}
			// 逐层减一,i增大,k减小
			for (int k = i - 1; k >= 1; k--) {
				if (k < i - 1) {
					sum = sum + line - (i - k);
				} else {
					sum = i + line - (i - k);
				}
				System.out.print(sum + "\t");
			}
			System.out.println();
		}
		input.close();
	}
}

实现效果如下:
在这里插入图片描述

注意:
每一列的数字都是有规律是自增。

难点:
熟练掌握for循环的多重嵌套使用。

猜你喜欢

转载自blog.csdn.net/weixin_44563573/article/details/103383945