编程中经典的算法很多,其中杨辉三角突出表明我国国代数学发展的极致,也是面试算法中常常问到的问题:
@Test
public void test() {
int row = 8 ;
// 在循环中依次保存当前行上一行每个元素的值
int prev = 1;
int[] arr = new int[row];
for( int i = 0; i < row; i++) {
// 等腰处理
for(int n=i; n<=row; n++) {
System.out.print(" ");
}
for( int j = 0; j <= i; j++) {
// 将上一行当前下标元素的值保存
int cur = arr[j];
// 当前元素等于上一行当前元素和上一行当前元素前一个元素之和
arr[j] = prev + cur;
// 对于下一圈循环,prev保存了当前行上一行元素前一个元素,即prev与cur保存的值一前一后
prev = cur;
System.out.print( arr[j] + " " );
}
System.out.println();
}
}