首个小程序第三方插件平台开放!免费制作小程序功能再次升级!
556
2022-11-08
某校2016年专硕编程题-杨辉三角
编写程序,从键盘输入正整数n(n 不大于20 ),打印一个n层的杨辉三角型。例如从从键盘输入4,输出如下图形。
1 11 121 1331
解决杨辉三角的思路
观察打印的矩阵格式:第2行开始,值 = 同列的上一行的值+上一行的后一列的值。
Java实现
生成杨辉三角矩阵
public static int[][] yang(int n) { if (n > 20 || n < 1) { return null; } int[][] a = new int[n][n]; //矩阵 a[0][0] = 1; //杨辉三角的第一行 for (int i = 1; i < n ; i++) { for (int j = 0; j < n; j++) { if (j == 0|| j == n) a[i][j] = 1; else a[i][j] = a[i-1][j]+a[i-1][j-1]; } } return a;}
时间复杂度:O(n^2)空间复杂度:O(n^2)
打印杨辉三角
public static void yang() { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); if (n > 20 || n < 1) { return ; } int[][] a = new int[n][n]; //矩阵 a[0][0] = 1; //杨辉三角的第一行 for (int i = 1; i < n ; i++) { for (int j = 0; j < n; j++) { if (j == 0|| j == n) a[i][j] = 1; else a[i][j] = a[i-1][j]+a[i-1][j-1]; } } for (int i = 0; i < a.length; i++) { for (int j = a.length-1; j >= 0 ; j--) { if (a[i][j] == 0) System.out.print(" "); else System.out.print(a[i][j]); } System.out.print("\n"); }}
Go实现
func yhTriangle(n int) [][]int { var a = make([][]int,n) for i := range a { a[i] = make([]int,n); } a[0][n-1] = 1 for i := 1; i < n; i++ { for j := 0; j < n; j++ { if j == n-1 { a[i][j] = 1 }else { a[i][j] = a[i-1][j]+a[i-1][j+1] } } } return a}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~