巴斯卡(Pascal)三角形Java算法

用Java写了一个巴斯卡(Pascal)三角形的小程序,代码如下:

import java.util.Scanner; /** * 巴斯卡(Pascal)三角形算法解析 * @author qjx * */ public class PascalTest { public static void main(String[] args){ PascalTest pascal = new PascalTest(); Scanner scanner = new Scanner(System.in); System.out.println("请输入巴斯卡三角行数:"); int num = scanner.nextInt(); pascal.pascalAssemble(num); } public void pascalAssemble(int num){ int[][] value = new int[num][num]; for(int i = 0; i < num ;i++){ value[i][0] = 1; value[i][i] = 1; if(i > 1){ for(int j = 1; j < i ;j++){ value[i][j] = value[i-1][j-1] + value[i-1][j]; } } } for(int i = 0; i < num ;i++){ for(int k = 0; k <= num - i;k++){ System.out.print(" "); } for(int j = 0; j<= i ;j++){ System.out.print(value[i][j]+" "); } System.out.println(); } } }

不足之处:如果行数过多输出的三角形有比较明显的偏移

巴斯卡(Pascal)三角形算法描述:

巴斯卡(Pascal)三角形基本上就是在解 nCr ,因為三角形上的每一個數字各對應一個nCr,其中 n 為 row,而 r 為 column,如下: 0C0
1C0 1C1
2C0 2C1 2C2
3C0 3C1 3C2 3C3
4C0 4C1 4C2 4C3 4C4

對應的數據如下圖所示:

巴斯卡(Pascal)三角形Java算法_第1张图片

你可能感兴趣的:(巴斯卡(Pascal)三角形Java算法)