java编写杨辉三角~~~

 我来答
黑马程序员
2017-06-19 · 改变中国IT教育,我们正在行动
黑马程序员
黑马程序员为大学毕业后,有理想、有梦想,想从事IT行业的年轻人改变自己的命运。黑马程序员成就IT黑马
向TA提问
展开全部
  • 杨辉三角线的推理:

杨辉三角形性质: 


每行数字左右对称,由 1 开始逐渐变大,然后变小,回到 1。 


第 n 行的数字个数为 n 个。 


第 n 行数字和为 2^(n-1) 。 


每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角形。 


第 n 行的第 1 个数为 1,第二个数为 1× (n-1) ,第三个数为 1× (n-1) × ( n-2) /2,第四个数为 1× (n-1) × (n-2) /2× (n-3) /3…依此类推。

  • 算法原理:

使用一个二维数组 yh[][] 存储杨辉三角形的数据,行和列的大小为所需要输出的行数 Row(本程 序中 Row 为 10)。


使用 for 循环使杨辉三角中除了最外层(不包括杨辉三角底边)的数为 1 ; 


使用语句 yh[i][j] = yh[i - 1][j - 1] + yh[i - 1][j] 使第 i 行第 j 列的数据等于第(i-1) 行 


第(j-1)列的数据与第(i-1)行第(j)列的数据之和,即每个数字等于上一行的左右两个数字之和。

  • 代码的实现

  • package com.practice; 

    public class YangHuiSanJiao  

           public static void main(String[] args) { 
            int [][]a = new int [10][10]; 
               for(int n = 0; n < 10;n++) 
               { 
                 a[n][0] = 1; 
                 a[n][n] = 1; 
               } 
               for(int n = 2; n <10; n++) 
               { 
                for(int j = 1; j < n; j++) 
                { 
                 a[n][j] = a[n -1][j -1] + a[n - 1][j]; 
                } 
               } 

               for(int n = 0; n < 10; n++) 
               { 
                for(int k = 0; k < 2 * (10 - n) - 1; k++) 
                { 
                 System.out.print(" "); 
                } 
                for(int j = 0; j <= n; j++) 
                { 
                 System. out.print(a[n][j] + "   "); 
                } 
                System.out.println(); 
               } 

     } 
    }
青春丶有你目送
高粉答主

2018-04-18 · 醉心答题,欢迎关注
知道小有建树答主
回答量:239
采纳率:100%
帮助的人:3.6万
展开全部

初学java,在网上找的杨辉三角形代码并不一地正确和适用,那些代码一般用于集成开发环境,并不适用于初学者。

工具/原料:editplus,jdk,java。

方法/步骤:

  • 打开editplus,点击文件--新建文件--java。不想下这个软件的可以新建一个记事本。

  • 然后把代码复制进去,不过要注意class后面的命名要和文件名字一致

  • 原创代码(非网上照搬复制,个人原创,真实有效):

    import java.util.Scanner;

    class demo1 

    {

    public static void main(String[] args) 

    {

    System.out.println("请输入杨辉三角的行数");

    Scanner in=new Scanner(System.in);

    int a=in.nextInt();

    int arr[][]=new int[a][a+2];

    for (int i=1;i<=a ; i++)

    arr[i-1][0]=0;

    arr[i-1][i+1]=0;

    }

    if (a==1)

    {

    System.out.println(" 1 ");

    }

    if (a==2)

    {

    System.out.println("   1 ");

    System.out.println(" 1 2 1");

    }

    else

    {

    arr[0][1]=1;

    for (int j=2;j<=a ;j++ )

    {

    for (int k=1;k<=j ;k++ )

    {

    arr[j-1][k]=arr[j-2][k-1]+arr[j-2][k];

    }

    }

    for (int i=1;i<=a ;i++ )

    {

    for (int space=0;space<=a-i ;space++ )

    {

    System.out.print(" ");

    }

    for (int j=1;j<=i ;j++ )

    {

    System.out.print(arr[i-1][j]+" ");

    }

    System.out.println();

    }

    }

    }

    }

  • 以editplus为例,把代码复制进去后,点击文件--保存--D盘,文件名为demo1.java。 如果用记事本保存为--所有类型文件--demo1.java。

  • 打开开始菜单,输入cmd

  • 输入d:  

    进入d盘

  • 输入javac demo1.java 编译,如果没有弹出什么则说明编译成功。

  • 输入java demo1

  • 然后就OK了

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuyang054
2015-05-12 · TA获得超过9093个赞
知道大有可为答主
回答量:5317
采纳率:78%
帮助的人:5298万
展开全部
public class Test {
public static void main(String args[]) {
int a = 10;
int b[][];
b = new int[a][];
for (int i = 1; i <= 10; i++) {
b[i - 1] = new int[i];
}
for (int j = 0; j < 10; j++) {
for (int k = 0; k <= j; k++) {
if (j == 0 || k == 0 || k == j)// 分支
{
b[j][k] = 1;// 等于1的
continue;
} else {
b[j][k] = b[j - 1][k - 1] + b[j - 1][k];// 计算值
}
}
}
for (int m = 0; m < 10; m++) {
for (int n = 0; n <= m; n++) {
System.out.print(b[m][n] + " ");// 循环输出
}
System.out.println(" ");
}
}
}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
凉面的笔记
2017-07-11 · TA获得超过289个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:100万
展开全部

好巧我也写这个作业

public class Demo12 { 
public static void main(String[] args){
printYH();
}

private static void printYH() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数代表几行");
int n = sc.nextInt();
//创建二维数组
int[][] arr = new int[n][n];
for (int i = 0; i < arr.length; i++) {
arr[i] = new int[i+1];
}
//赋值
for (int i = 0; i < arr.length; i++) {
arr[i][0] = 1;
arr[i][i] = 1;
for (int j = 1; j < i; j++) {
arr[i][j] = arr[i-1][j]+arr[i-1][j-1];
}
}
//打印
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式