打印杨辉三角--for循环

要求打印7行直角杨辉三角

杨辉三角特点:

第1行和第2行数字都为1;
从第三行开始,除去开头和结尾数字为1,中间数字为上一行斜对角两个数字的和。
如下图:
这里写图片描述

打印结果:
这里写图片描述

代码如下:

package 杨辉三角;

public class Test2 {
    public static void main(String[] args){
        //建立以数组用于存储上一行的数据,因为是从第三行开始中间数是上一行斜对角的两数之和
        //所以开始先存第二行的数据,然后在每次用完数组后,改变数组的长度,存储当前行的数据,
        //用于下一行数据的计算
        int k=2;
        int[] temp=new int[k];
        temp[0]=temp[k-1]=1;

        for(int i=1;i<8;i++){
            //建立数组,存取当前行数据
            int[] arr=new int[i];
            //给当前行数组赋值
            for(int j=0;j<i;j++){
                //先给第一个和最后一个数赋值
                if(j==0||j==i-1){
                    arr[j]=1;
                }else{
                    //中间数为上一行斜对角的两数之和
                    arr[j]=temp[j-1]+temp[j];
                }
            }
            //给当前行赋值完毕后让k+1,增加数组长度,用于存取当前行的数据
            k++;
            temp=new int[k];
            //打印当前行数组,并给新temp赋值,便于下一行使用当前行数据
            for(int y=0;y<arr.length;y++){
                temp[y]=arr[y];
                System.out.print(arr[y]+" ");
            }
            System.out.println();
        }
    }
}

扩展延伸:
通过后台控制打印几行,并要求打印出来的是等腰三角形

posted @ 2017-04-30 00:23  TCB_Java  阅读(259)  评论(0编辑  收藏  举报