实验目的:用一维数组实现杨辉三角的输出
结果如下:
用#代替空格输出更直观些
代码如下:
1 package yhui; 2 import java.util.*; 3 public class yh { 4 public static void main(String[] args) { 5 // TODO Auto-generated method stub 6 7 Scanner in=new Scanner(System.in); 8 System.out.print("规定要输出的层数: "); 9 int n=in.nextInt(); 10 11 yhui(5); 12 13 } 14 static void yhui(int n) { 15 System.out.println(" 输出"+n+"层的等腰杨辉三角 "); 16 int [] a=new int [n]; //定义数组a[n] 17 for (int i=0;i<=n-1;i++) //按层数循环,i为层数 18 { 19 a[i]=1; //赋值 20 for (int j=i-1;j>=1;j--) 21 //从第2行层始,从第i-1个元素开始计算,直到第j个元素,计算各元素的值,j为列 22 a[j]=a[j]+a[j-1]; 23 //元素的值是上一行本位置元素左右值的和 24 for(int k=1;k<=n-i;k++) //打印空格,间隔 25 System.out.print("#5"); 26 for (int j=0;j<=i;j++) 27 { //输出本层 28 System.out.print("#"); 29 System.out.print(a[j]); 30 } 31 System.out.println(); 32 } 33 } 34 }
心得:用一位数组进行杨辉三角的输出,不仅要考虑三角形的对应,符合等腰三角形的形状,空格与数字的输出;
思路:
1.可以用两个一维数组,一个用来打印当前的层数;一个用来存储上一层的数字,通过计算得到下一层的数字
2.通过递归算法,用一维数组对杨辉三角的值进行存储
3.可以通过本实验,每循环一层就计算本层的各元素值,并输出
Java的变量只在定义的范围内有效,除此之外均无效,会提示该变量未定义!!!
至此,完成!