JAVA打印指定行数的杨辉三角
java语言打印一个用户指定行数的杨辉三角形,这是一个比较经典问题,直接上代码:
首先需要用户输入指定行,那得先导包:
import java.util.Scanner;
然后定义指定行的一个二维数组:
//实例化输出
Scanner scan = new Scanner(System.in);
//定义二维数组,并指定行数
System.out.print("请指定行数(<=1):");
int k = scan.nextInt();
int YangHui[][] = new int[k][];
接着给元素赋值:
//给数组元素赋值
for (int i = 0; i < k; i++) {
YangHui[i] = new int[i + 1];
//给元素首末赋值
YangHui[i][0] = YangHui[i][i] = 1;
//给非首末元素赋值
for (int j = 1; j < YangHui[i].length - 1; j++) {
YangHui[i][j] = YangHui[i - 1][j - 1] + YangHui[i - 1][j];
}
}
给首末元素赋值就不用多说了,这里说一下给非首末元素赋值的问题;其实也比较简单,就是将上一行前一个元素与上一行对应的元素相加,然后赋值给本行的元素就行了。
最后遍历出该二维数组,用空格隔开(注意输出不要换行,等一行结束后再换行):
//遍历数组
for (int i = 0; i < k; i++) {
for (int j = 0; j < YangHui[i].length; j++) {
System.out.print(YangHui[i][j] + " ");
}
//每一行结束后再换行
System.out.println();
}
完整代码:
//打印一个用户指定行数的杨辉三角形
import java.util.Scanner;
public class YangHui {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//定义二维数组,并指定行数
System.out.print("请指定行数(<=1):");
int k = scan.nextInt();
int YangHui[][] = new int[k][];
//给数组元素赋值
for (int i = 0; i < k; i++) {
YangHui[i] = new int[i + 1];
//给元素首末赋值
YangHui[i][0] = YangHui[i][i] = 1;
//给非首末元素赋值
for (int j = 1; j < YangHui[i].length - 1; j++) {
YangHui[i][j] = YangHui[i - 1][j - 1] + YangHui[i - 1][j];
}
}
//遍历数组
for (int i = 0; i < k; i++) {
for (int j = 0; j < YangHui[i].length; j++) {
System.out.print(YangHui[i][j] + " ");
}
//每一行结束后再换行
System.out.println();
}
}
}
运行结果,这里以5行、10行为例:
这里的难点就在于给非首末元素赋值,如果大家理解了,那就没啥问题了。