题解 | #蛇形矩阵#
蛇形矩阵
https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
/** HJ35 蛇形矩阵
* 描述:
* 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
* 例如,当输入5时,应该输出的三角形为:
* 1 3 6 10 15
* 2 5 9 14
* 4 8 13
* 7 12
* 11
*
*
* 输入描述:
* 输入正整数N(N不大于100)
*
* 输出描述:
* 输出一个N行的蛇形矩阵。
*
* 示例1
* 输入:4
*
* 输出:1 3 6 10
* 2 5 9
* 4 8
* 7
*/
import java.io.*;
public class Main {
public static void main(String[] args)throws IOException {
// 创建一个 BufferedReader 对象 br,用于从标准输入流读取数据
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 用于存储读取的每一行数据
String str;
// 环不断读取输入,直到输入结束(即读取到 null)
while ((str = br.readLine()) != null) {
// 将读取的字符串转换为整数,存储在 num 变量中
int num = Integer.parseInt(str);
// 创建一个 StringBuilder 对象 sb,用于构建输出结果
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= num; i++) {
// 计算当前行的起始值,根据数学规律计算
int start = (i - 1) * i / 2 + 1;
int step = i + 1;
// 开始内层循环,从 1 循环到 num-i+1
for (int j = 1; j <= num - i + 1; j++) {
// 将当前起始值添加到 StringBuilder 中,并添加一个空格
sb.append(start).append(" ");
start += step;
step ++ ;
}
// 将当前行的最后一个空格替换为换行符
sb.setCharAt(sb.length() - 1, '\n');
}
// 删除最后一个换行符,以便输出
sb.deleteCharAt(sb.length() - 1);
System.out.println(sb.toString());
}
}
}
正浩创新EcoFlow公司福利 608人发布
