如果对你有帮助就点个赞或关注一下吧~~
持续更新更多java基础或算法题目
package com.base.anli;
import java.util.Scanner;
public class sanJiao {
public static void main(String[] args) {
//打印出完美的杨辉三角
//请用户输入要打印几行的杨辉三角
Scanner in = new Scanner(System.in);
System.out.println("请输入你想打印几行杨辉三角~~");
int row = in.nextInt();
yh(row);//调用下面的方法
}
public static void yh(int row){
//用二维数组存储数据
int[][] arr = new int[row][row];
//遍历数组,把两边全部打印为1
for (int i = 0; i < arr.length; i++) {
arr[i][0] = arr[i][i] = 1;
}
//打印出内部数字
//可以先通过上面形式的杨辉三角进行分析输出内部元素
//从第三行开始即可,前面打印1的过程已经把前两行打印完毕
for (int i = 2; i < arr.length; i++) {
//分析第三行可知要从2开始打印,故j=1
for (int j = 1; j < i; j++) {
//要打印的数字为其上一行其左边的数字加上上一行其上方的数字
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
//打印出杨辉三角的输出格式
for (int i = 0; i < arr.length; i++) {
for (int k = 0; k < 2*(10-i)-1; k++) {
System.out.print(" ");
}//这是第二个for循环,这是打印出完美格式的核心代码,主要是计算出在每一行前面加入多少个空格。
//*******************1
//*****************1 1
//***************1 2 1
//*************1 3 3 1
//***********1 4 6 4 1
//利用高中知识可以得出每行的空格数为2*(10-i)-1
for (int j = 0; j <= i; j++) {
//此for循环嵌套在第一个for循环内主要是打印出杨辉三角数据,
// 若没有第二个for循环则是打印的普通for循环
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
能否反手赏个赞,感激涕零。。。



