java一维数组杨辉三角_JAVA一维数组实现杨辉三角

题目:用JAVA实现如下形式(杨辉三角)

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

思路:杨辉三角的性质是,除收尾两个数字为1以外,其他第n行第m个数字等于上方两个数之和。

网上有很多实现杨辉三角是应用二维数组,本文应用的是一维数组,不一定比二维数组好,但是也是一种实现问题的方法。

刚看到题目首先想到的是应该有两层for循环,第一层实现对行数的控制,第二层实现对每一行里具体数的控制。那么遇到一个问题,每一层循环的时候会用到上一层循环的数据,想到了应用全局变量,在每一次循环结束的时候对全局变量进行赋值,这样下次循环就能用到本次循环的数据。

public class Procedure33 {

public static void main(String[] args) {

int [] up=new int [20];

for(int i=1;i<=10;i++){

int [] a=new int [i];

for(int j=0;j

if(j==0||j==i-1){

a[j]=up[j]=1;

}

//杨辉三角核心的东西,其中up为上一层数据

if(i>=3&&j!=0&&j!=i-1){

a[j]=up[j-1]+up[j];

}

}

//把本次循环数据,放入up中,供下次循环使用

for(int k=0;k

up[k]=a[k];

}

for(int k=0;k

System.out.print(a[k]+" ");

}

System.out.println();

}

}

}

输出结果如下:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

1 7 21 35 35 21 7 1

1 8 28 56 70 56 28 8 1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值