Java 中打印杨辉三角

来源:互联网 发布:超时空要塞f知乎 编辑:程序博客网 时间:2024/04/30 00:44
/*需求:打印杨辉三角形(行数可以键盘录入)11 11 2 11 3 3 11 4 6 4 1 1 5 10 10 5 1分析:看这种图像的规律A:任何一行的第一列和最后一列都是1B:从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。步骤:A:首先定义一个二维数组。行数如果是n,我们把列数也先定义为n。  这个n的数据来自于键盘录入。B:给这个二维数组任何一行的第一列和最后一列赋值为1C:按照规律给其他元素赋值从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。D:遍历这个二维数组。*/import java.util.Scanner;class Array2Test3 {public static void main(String[] args) {//创建键盘录入对象Scanner sc = new Scanner(System.in);//这个n的数据来自于键盘录入。System.out.println("请输入一个数据:");int n = sc.nextInt();//定义二维数组int[][] arr = new int[n][n];//给这个二维数组任何一行的第一列和最后一列赋值为1for(int x=0; x<arr.length; x++) {arr[x][0] = 1; //任何一行第1列arr[x][x] = 1; //任何一行的最后1列}//按照规律给其他元素赋值//从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。for(int x=2; x<arr.length; x++) {//这里如果y<=x是有个小问题的,就是最后一列的问题//所以这里要减去1//并且y也应该从1开始,因为第一列也是有值了for(int y=1; y<=x-1; y++) {//每一个数据是它上一行的前一列和它上一行的本列之和。arr[x][y] = arr[x-1][y-1] + arr[x-1][y];}}//遍历这个二维数组。for(int x=0; x<arr.length; x++) {for(int y=0; y<=x; y++) {System.out.print(arr[x][y]+"\t");}System.out.println();}}}

1 0
原创粉丝点击