【JAVA基础】杨辉三角

这个其实就是根据我们理解的杨辉三角来写杨辉三角!告诉你上一行的数据,你要能写出下一行的数据;

代码:

/**
 * Created by wlxsq on 2016/3/8.
 */
public class HelloWorld {
    public static void main(String[] args){
        int []a;
        a=new int [150];
        a[1]=1;
        int k=1,n=1,cnt=2;
        while(k<55){
            for(int i=k;i<k+n;i++){
                System.out.print(" "+a[i]);
                if(i==k) a[cnt++]=a[i];             //  下一行根据上一行的数据形成;
                if(i>k) a[cnt++]=a[i]+a[i-1];       //  注意这三行的数据不能弄乱了;
                if(i==k+n-1) a[cnt++]=a[i];
            }
            System.out.println();
            k=k+n;n=n+1;
        }
    }
}

用函数实现,一维二维数组实现:

/**
 * @(#)yangHuiSanJiao.java
 *
 *
 * @author 
 * @version 1.00 2016/3/9
 */


public class yangHuiSanJiao {

    public static void main(String[] args){
    	int t=6;
    	yangHuiSanJiao prin=new yangHuiSanJiao();
    	prin.print2(t);
    }
    static void print1(int t){
    	int temp=0;
		int []a=new int [((t * (t + 1)) / 2) + 1];
		int k=1,n=1,cnt=2;
    	a[1]=1;
    	while(temp<t){
    		temp++;
    		for(int i=k;i<k+n;i++){
	    		System.out.print(" "+a[i]);
	    		if(i==k&&temp<t) a[cnt++]=a[i];
	    		if(i>k&&temp<t) a[cnt++]=a[i]+a[i-1];
	    		if(i==k+n-1&&temp<t) a[cnt++]=a[i];
	    	}
	    	k=k+n;n=n+1;
	    	System.out.println();
    	}
    }
    static void print2(int t){
    	int [][]a=new int [t][];
    	for(int i=0;i<a.length;i++){
    		a[i]=new int[i+1];
    		for(int j=0;j<i;j++){
    			if(i==0||j==0||i==j) a[i][j]=1;
    			else a[i][j]=a[i-1][j-1]+a[i-1][j];
    			System.out.print(" "+a[i][j]);
    		}
    		System.out.println();
    	}
    }
}

    原文作者:杨辉三角问题
    原文地址: https://blog.csdn.net/wlxsq/article/details/50830054
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞