自己写的杨辉三角打印算法

今天舍友在看杨辉三角,我看了下说挺简单,自己试了试,也花了好久才弄出来,纯属自己想的算法,比较烂,下面记录一下,留着以后看自己当初写的多么烂,哈哈

效果如下:

代码如下: 

 1 package com.xujingyang.test;
 2 
 3 public class yanghui {
 4     public static void main(String[] args) {
 5 
 6         yanghui(10);
 7     }
 8 
 9     public static void yanghui(int line) {
10         
11         //初始第一个数字是1
12         int[] nums = new int[] { 1 };
13 
14         for (int i = 1; i <= line; i++) {//每一行的数字跟行号相同,循环
15             if (i == 1) {
16                 //如果是第一行就只打印一个1
17                 System.out.println(1); 
18             } else {
19                 
20                 //初始化一个数组记录求出的下一行的数字,并且数字个数跟行数相同
21                 int[] nums2 = new int[i];
22                 
23                 //遍历求每一个对应的数字
24                 for (int j = 0; j < i; j++) {
25                     if (j == 0 || j == (i - 1)) {
26                         //如果是第一个或者是最后一个数字,就直接拿上一行的数字的第一个或最后一个加0
27                         nums2[j] = nums[i-2] + 0;
28                     } else {
29                         //从第二个数字开始就是上一行的对应的第j-1位数字和第j位数字相加
30                         nums2[j] = nums[j - 1] + nums[j];
31                     }
32                 }
33 
34                 //循环打印求出的对应行的数字
35                 for (int j = 0; j < nums2.length; j++) {
36                     System.out.print(nums2[j] + " ");
37                 }
38                 System.out.println();
39                 
40                 //最后将求出的这一行的数组赋值给上一行
41                 nums = nums2;
42             }
43         }
44 
45     }
46 }
原文地址:https://www.cnblogs.com/xujingyang/p/6414626.html