一维数组打印杨辉三角形—Java
【摘要】 1、问题描述2、输入和输出格式3、代码实现import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //输入打印的行数 int rows = sc...
1、问题描述
2、输入和输出格式
3、代码实现
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//输入打印的行数
int rows = scanner.nextInt();
//据观察杨辉三角形第n行有n个元素
//声明一个可以存储最大行数中的元素个数的数组,
int[] arr = new int[rows];
//杨辉三角形的每一行的第一个元素都是1
arr[0] = 1;
//打印第一行
System.out.println(arr[0]);
//打印第2行到第rows行
for(int i = 1;i < rows;i++){
//给当前行中的元素赋值
//因为使用的是一维数组,在给第i行赋值时相当于把第(i - 1)行的元素值覆盖掉了
//在时间和空间的使用上要比二维数组省
for(int j = i - 1;j > 0;j--){
/*
杨辉三角形的第i行的第j个元素 = 第(i - 1)行的第j个元素 + 第(i - 1)行的第(j - 1)个元素
这行代码等同于下面那行代码: arr[j] = arr[j] + arr[j - 1];
*/
arr[j] += arr[j - 1];
}
//杨辉三角形的每一行的最后一个元素都是1
arr[i] = 1;
//打印当前行中的元素
for(int k = 0;k <= i;k++){
System.out.print(arr[k] + " ");
}
System.out.println();
}
}
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)