·输出一个杨辉三角:
杨辉三角的性质:
每行数字左右对称,由1开始逐渐变大,然后变小,回到1。
第n行的数字个数为n个。
第n行的数字和为2^(n-1)。
每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角形。
第n行的第一个数为1,第二个数为1*(n-1),第三个数为1*(n-1)*(n-2)/2,第四个数为1*(n-1)*(n-2)/2*(n-3)/3...以此类推。
public class YangHuiSanJiao { public static void main(String[] args) { int[][] a = new int[10][10]; for (int i = 0; i < 10; i++) { a[i][i] = 1; a[i][0] = 1; } for (int i = 2; i < 10; i++) { for (int j = 1; j < i; j++) { a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; } } for (int i = 0; i < 10; i++) { for (int k = 0; k < 2 * (10 - i) - 1; k++) { System.out.print(" "); } for (int j = 0; j <= i; j++) { System.out.print(a[i][j] + " "); } System.out.println(); } } }
·算法:
使用一个二维数组yh[][]储存杨辉三角形的数据,行和列的大小为所需要输出的行数。
使用for循环实验室三角中除了最外层,(不包括底边)的数为1;
使用语句yh[i][j]=yh[i - 1] + yh[i - 1][j]使第i行第j列的数据等于第(i-1)行第(j-1)列的数据与第(i-1)行第(j)列的数据之和,即每个数字等于上一行的左右两个数字之和。
·输出结果如下
时间: 2024-10-12 23:20:06