JAVA编程------------33、打印杨辉三角

 1 package FushiExam;
 2 import java.util.*;
 3 public class Text_33 {
 4 
 5     public static void main(String[] args) {
 6         // 打印杨辉三角
 7         /*
 8          *          1
 9          *        1   1
10          *      1   2   1
11          * 1    3   3   1
12          1    4   6   4   1
13        1   5   10   10   5  1
14        杨辉三角如图所示:
15        
16        分析:
17        在数组中设置一个n*n的矩阵,不考虑格式,如图:
18        1
19        1  1
20        1  2  1
21        1  3  3  1
22        1  4  6  4  1
23        1  5  10 10 5  1
24          * 
25          */
26         Scanner scan=new Scanner(System.in);
27         System.out.println("打印杨辉三角的前多少行:");
28         int n=scan.nextInt();
29         int[][] arr=new int[n][n];//用一个n*n的二维矩阵来存储杨辉三角数据
30         for(int i=0;i<n;i++) {
31             for(int j=0;j<n;j++) {//设置每一行数据为‘1’的位置
32                 arr[i][0]=1;
33                 arr[i][i]=1;
34             }
35         }
36         /*
37          * 接下来设置除了‘1’的位置
38          */
39         for(int i=0;i<n;i++) {
40             for(int j=0;j<=i;j++) {
41                 if(arr[i][j]==0)
42                     arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
43             }
44         }
45         /*
46          * 输出为:
47          * 1
48          * 11
49          * 121
50          * 1331
51          * 14641
52          * 15101051
53          * 
54          * 接下来设置输出格式
55          */
56         for(int i=0;i<n;i++) {
57             for(int k=0;k<n-1-i;k++) {//输出空格
58             System.out.print("  ");}//输出每一行开始的空格
59             for(int j=0;j<=i;j++) {
60                 System.out.print(arr[i][j]+"  ");//打印每一个数据
61             }
62             System.out.println();
63         }
64         
65         /*for(int i=1;i<n;i++) {//第一层循环,行数
66             for(int j=0;j<n-i;j++) {//第二层循环,用来打印每一行的空格
67                 
68             }
69             
70         }
71 */
72     }
73 
74 }

猜你喜欢

转载自www.cnblogs.com/fmust/p/12515874.html