在java中用二维数组构造并打印一个有N行的杨辉三角,N由命令行输入如一个有6行的杨辉三角

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java中用二维数组构造并打印一个有N行的杨辉三角,N由命令行输入如一个有6行的杨辉三角相关的知识,希望对你有一定的参考价值。

必须用二维数组的知识,有命令行来确定打印的行数。

参考技术A import java.util.Scanner;

public class YTriangular

public void run(int num)
if (num < 3)
main(null);

int[][] yt = new int[num][num];

for (int i = 0; i < num; i++)
for (int j = 0; j < i; j++)

if (i == j || j == 0)
yt[i][j] = 1;
else
yt[i][j] = yt[i - 1][j - 1] + yt[i - 1][j];

System.out.print(yt[i][j] + " ");

System.out.println("");




public static void main(String[] args)
System.out.println("请输入行数(>=3)");
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
new YTriangular().run(num);

参考技术B import java.util.Scanner;

public class Yang

public void fun(int num)

int[][] m=new int [num][];
for(int i=0;i<m.length;i++)
m[i]=new int[i+1];
m[i][0]=1;m[i][i]=1;
for(int j=0;j<m[i].length-1;j++)
if(j>=1&&i>1)
m[i][j]=m[i-1][j-1]+m[i-1][j];


for(int i=0;i<m.length;i++)
for(int j=0;j<m[i].length;j++)
System.out.print(m[i][j]);
System.out.print('\t');

System.out.println();



public static void main(String[] args)
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
new Yang().fun(num);

本回答被提问者和网友采纳

java例题_33 等腰输出杨辉三角

 1 /*33 【程序 33 杨辉三角】 
 2 题目:打印出杨辉三角形(要求打印出 10 行如下图) 
 3 程序分析: 
 4      1  
 5     1 1  
 6    1 2 1  
 7   1 3 3 1  
 8  1 4 6 4 1  
 9 1 5 10 10 5 1  
10 */
11 
12 /*分析:
13  * ======================
14  * 杨辉三角特点:
15  * 1.每个数等于它上方两数之和。
16  * 2.每行数字左右对称,由1开始逐渐变大。
17  * 3.第n行的数字有n项。
18  * =======================
19 ==================================规律===规律====规律==================================
20  * 经过观察发现:
21     1  
22     1 1  
23     1 2 1  
24     1 3 3 1  
25     1 4 6 4 1  
26     1 5 10 10 5 1  
27     第一行a1[0]=1
28     第二行a2[0]=1,a2[1]=1;
29     第三行a3[0]=1,a3[1]=a2[0]+a2[1],a3[2]=1;
30     第四行a4[0]=1,a4[1]=a3[0]+a3[1],a4[2]=a3[1]+a3[2],a4[3]=1;
31     ....
32     第n行an[0]=1,an[1]=a(n-1)[0]+a(n-1)[1],an[2]=a(n-1)[1]+a(n-1)[2],an[3]=a(n-1)[2]+a(n-1)[3]...
33         ...an[n-2]=a(n-1)[n-3]+a(n-1)[n-2],an[n-1]=1;
34     
35     考虑用for循环输出10行!还有一个for循环来改变数组的值
36 直接用二维数组输出!!!!!!!
37 * ==========输出规律=========
38 * 每行的第一个数字前面有n-i个空格,即第一数字输出之前要输出n-i个空格
39 * 没输出一个数字,再输出一个空格
40 * 
41 */
42 
43 package homework;
44 
45 public class _33 {
46 
47     public static void main(String[] args) {
48         // 声明一个10行10列的二维数组
49         int n = 10;
50         int[][] a = new int[n][n]; // 10行10列数组
51         //第一次循环控制行数
52         for (int i = 0; i < n; i++) {
53             //第二层循环控制列数
54             for (int j = 0; j <= i; j++) {
55                 //每行的第一列值都为1,每行要输出的最后一个数(即行数等于列数时)也为1
56                 if (j == 0 || j == i) {       
57                     a[i][j] = 1;
58                 } 
59                 //其余情况的值都等于它上方两数之和
60                 else {
61                     a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
62                 }
63 //              System.out.printf("%d	",a[i][j]);  //输出值
64             }
65 //          System.out.println();   //换行
66         }
67         
68         // 使输出的结果为等腰三角形,两层for循环
69         //  第一层控制行输出
70         for (int i = 0; i < n; i++) {
71             //第二层的第一部分控制输出空格
72             for (int j = 0; j <= n-i; j++) {
73                 System.out.print(" ");
74             }
75             //第二层的第二部分控制输出数组值+“ ”
76             for (int k = 0; k <= i; k++) {
77                 System.out.print(a[i][k] + " ");
78             }
79             System.out.println(); //换行
80         }
81 
82     }
83 }

 

以上是关于在java中用二维数组构造并打印一个有N行的杨辉三角,N由命令行输入如一个有6行的杨辉三角的主要内容,如果未能解决你的问题,请参考以下文章

用JAVA打印杨辉三角…

怎样用java打印杨辉三角,自己输入行

java打印等腰杨辉三角

用二维数组的方式打印杨辉三角形

JAVA实现杨辉三角的三种方式

java:杨辉三角,输入n输出它的前n行