杨辉三角
杨辉三角在编程实现中较为容易。最常见的算法便是用上一行递推计算;也有运用和组合的对应关系而使用阶乘计算的,然而后者速度较慢且阶乘容易溢出。编程的输出大多相类,此处并不过多添加截图。
C、C++、C#、Java 语言之间的语法也大多相类,因此这里也不会将每一种算法都在这些语言中各实现一遍。要在这些语言的版本间修改,实际上只需注意一些简单的语法和函数名称的改变,如 C 的 int yh[M][M] 应改写为 Java 的 int[][] yh = new int[M][M]、C# 的 int[,] yh=new int[M,M];C printf 应使用 Java 的 System.out.print、C# 的 Console.Write 、C++ 中更智能的 cout 来替换。
杨辉三角特点:
-
每个数等于它上方两数之和。
-
每行数字左右对称,由1开始逐渐变大。
-
第n行的数字有n项。
class YangHuiSanJiao2{ public static void main(String[] args){ int row = 8; int arr[][] = new int [row][row]; for(int i = 0; i < row; i++){ for(int j = 0; j <= i; j++){ if(j == 0 || j == i){ arr[i][j] = 1; }else{ arr[i][j] = arr[i-1][j] + arr[i-1][j-1]; } } } for (int a = 0; a < row; a++) { int num = row - a; for (int b = 0; b<=num ; b++) { System.out.print(" "); } for (int c = 0;c <= a;c++ ) { System.out.print(arr[a][c]+" "); } System.out.println(); } } }
输出结果: