题目要求:输入行数和列数,得出杨辉三角列式
思路:
1.首先在main函数中利用scanner来进行键盘输入,输入一个数字,表示行数和列数,之后调用printTriangle()函数。
2.在printTriangle()函数中,我们先定义一个二维数组来储存行数和列数的数字。
杨辉三角的首部和尾部的数字都是1,中间的数字是上面两个相邻的数字之和。
3.先利用一个for循环来定义首尾的数字,定义为1;
4.接下来给元素内部赋值。利用双层for循环来得出中间的数字。int i=2表示从第三行开始,第一行和第二行元素都是1,因为第一行只有一列,第二行只有两列。比如说第三行的第二个元素2,是由上一行的同列元素与上一行前一列元素相加得到的。用代码实现就是arr[2][1]=arr[1][1]+arr[1][0]
5.最后再利用循环遍历出所有元素
package Lq_project;
import java.util.Scanner;
public class Yanghuisanjiao {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num1 = scanner.nextInt();
printTriangle(num1);
}
private static void printTriangle(int num) {
int[][] arr = new int[num][num];
/* 给三角的左右两边元素赋值 */
for (int i = 0; i < num; i++) {
arr[i][i] = 1;
arr[i][0] = 1;
}
/* 给三角的内部元素赋值,每个元素等于上层两个相邻元素之和 */
//从第三行开始,除上面第一个数和最后一个数外,其余各数都是上一行同列和前一列两数之和
for (int i = 2; i < num; i++) {
for (int j = 1; j < i; j++) {
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
/* 输出所有元素 */
//遍历循环数组中的元素,外层循环控制行,内存循环控制列
for (int i = 0; i < num; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(arr[i][j] + " ");//两个数之间有空格
}
System.out.println();//换行
}
}
}
10行运行结果: