题目描述:打印 n 行杨辉三角
1 n=1
1 1 n=2
1 2 1 n=3
1 3 3 1 n=4
1 4 6 4 1 n=5
1 5 10 10 5 1 n=6
1 6 15 20 15 6 1 n=7
思路:
1、第n行有n个数字
2、每行第一个元素和最后一个元素都是1
3、从第三行开始,中间数字规律 a[i][j] = a[i-1][j-1] + a[i-1][j];
注意:杨辉三角可看作一个列数不定的二维数组,因此在操作中先为二维数组开空间存放一维数组的地址,再为一维数组开空间存值
//打印 n 行杨辉三角
/* 1 n=1
1 1 n=2
1 2 1 n=3
1 3 3 1 n=4
1 4 6 4 1 n=5
1 5 10 10 5 1 n=6
1 6 15 20 15 6 1 n=7
*/
import java.util.Scanner;
public class YangHuiTriangle
{
public static void main(String[] args)
{
int n;// n 行杨辉三角
Scanner myScanner = new Scanner(System.in);
System.out.println("===需要打印的行数===");
n = myScanner.nextInt();
int[][] arr = new int[n][];//列数不定
for(int i = 0; i < arr.length; i++)
{
arr[i] = new int[i + 1];//为二维数组里的一维数组开空间
for(int j = 0; j < arr[i].length; j++)
{
if(j == 0 || j == arr[i].length - 1)//每行的第一个数和最后一个数为1
arr[i][j] = 1;
else//除了两边就是中间
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];//从第3行开始中间数字的规律
}
}
System.out.println("===打印杨辉三角===");
for(int i = 0; i < arr.length; i++)
{
for(int j = 0; j < arr[i].length; j++)
{
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
本次介绍了如何打印杨辉三角的方法,并且总结了操作中的思路和规律。我的另一篇http://t.csdn.cn/Hpzic介绍了有关数组扩容和拷贝的方法,感兴趣的话可以康康哦。