代码如下:
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("\n"); //每输出一行自动换行 } } }
总结心得:
(1)创建静态数组时,一定要定义数组的大小,我这里定义的大小为100
(2)计算杨辉三角时,要注意两个数组之间的关系,即c[x]=b[x-1]+b[x]
(3)嵌套的for循环作用:外层for循环是控制杨辉三角层数,内层for循环是具体的计算每个元素的数值
(4)输出格式,即开头的空格数,层数越多,开头的空格越少,用y<=n-i来控制次数
(5)这一步是最容易出错的,就是把计算完成的一行转成上一层并进行下一层的计算,一定不能直接用b=c来赋值,要用for循环一个一个元素的赋值