zoukankan      html  css  js  c++  java
  • 采用两个一维数组输出等腰三角形的杨辉三角

    代码如下:

    package 杨辉三角;
    import java.util.Scanner;
    public class 杨辉三角0 {
        public static void main(String[] args)
        {
        Scanner a = new Scanner(System.in);     
        System.out.print("输入杨辉三角的行数n:");
        int n=a.nextInt();
        int[] b=new int[100];       //创建整形数组,最大可存放100个整形
        int[] c=new int[100];       //创将两个数组,一个用来存放上一层的数据,另一个用来计算并保存本层数据
        int i,x,y;
        for(i=0;i<100;i++)        //将两个数组全部初始化,数据全为1
            b[i]=c[i]=1;
        for(i=0;i<n;i++)
            {   
                for(x=1;x<i-1;x++)
                {
                    c[x]=b[x-1]+b[x];     //计算杨辉三角的过程
                }
                for(y=0;y<=n-i;y++)        //每行开头输出空格规范格式
                    System.out.print(" ");
                for(x=0;x<=i-1;x++)
                {b[x]=c[x];              //进入下一层之前把本层数据转为上一层数据,给接下来的计算使用
                
                System.out.print(c[x]+" ");}
                System.out.print("
    ");     //每输出一行自动换行
                }    
        }
    }

    总结心得:

    (1)创建静态数组时,一定要定义数组的大小,我这里定义的大小为100

    (2)计算杨辉三角时,要注意两个数组之间的关系,即c[x]=b[x-1]+b[x]

    (3)嵌套的for循环作用:外层for循环是控制杨辉三角层数,内层for循环是具体的计算每个元素的数值

    (4)输出格式,即开头的空格数,层数越多,开头的空格越少,用y<=n-i来控制次数

    (5)这一步是最容易出错的,就是把计算完成的一行转成上一层并进行下一层的计算,一定不能直接用b=c来赋值,要用for循环一个一个元素的赋值

  • 相关阅读:
    iOS 将对象的属性和属性值拆分成key、value,通过字符串key来获取该属性的值
    [IOI2005] Riv 河流
    [洛谷P4549] [模板] 裴蜀定理
    [NOIp2013] 货车运输
    [NOIp2015] 运输计划
    18.10.01模拟赛总结
    [洛谷P3369] 普通平衡树 Treap & Splay
    [NOIp2016] 组合数问题
    [洛谷P4777] [模板] 扩展中国剩余定理
    [洛谷P3384] [模板] 树链剖分
  • 原文地址:https://www.cnblogs.com/fjcy/p/10602693.html
Copyright © 2011-2022 走看看