黑马程序员技术交流社区

标题: 再次请教杨辉三角 [打印本页]

作者: 看海的管家    时间: 2015-10-3 14:06
标题: 再次请教杨辉三角
打印出杨辉三角形怎么打印
作者: panpanpan138    时间: 2015-10-3 16:27
思路:1,观察上述图形,分析数字间的规律,发现这个三角形的两条边
                         上的数字都是1;当每一行上的数多于3时,从第二个数字开始
                         每个数字都是上一行与本数字相邻的两个数字之和
                  2,根据观察得出的规律,不妨将这个图形用二维数组的形式进行存放
                     定义一个拥有5个一维数组的二维数组arr[5][5];
                  3, 不难分析,arr[0][0]=1;arr[1][0]=1;arr[1][1]=1
                      arr[2][1]=arr[1][0]+arr[1][1];
                          arr[3][1]=arr[2][0]+arr[2][1];
                  4, 用for循环嵌套遍历2维数组,用if else语句判断
                  5,打印图形
*/
import java.util.Scanner;
class Yanghui
{
        public static void main(String[] args)
        {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个数字:");
                int num = sc.nextInt();
                int[][] arr = new int[num][num];//定义一个二维数组存储数据
                for(int i=0;i<num;i++){//外循环控制行数
                        for(int x=i;x<num-1;x++){//先输出一个由空格组成的倒三角
                                System.out.print(" ");
                        }
                        for(int j=0;j<=i;j++){//输出一个正三角
                                //当二维数组中的一维数组的脚标为0
                                //或者二维数组的脚标和一维数组的脚标相等时,输出1
                                if(j==0 || j==i){
                                        arr[i][j] = 1;
                                }
                                //除了1以外的数组元素等于上一个数组中与之相邻的两个元素之和
                                else{
                                        arr[i][j] = arr[i-1][j-1]+arr[i-1][j];
                                }
                                System.out.print(arr[i][j]+" ");
                        }
                        System.out.println();
                }
        }
}
作者: cloud1991    时间: 2015-10-3 17:30
楼上正解
作者: ll5353231    时间: 2015-10-4 00:42
楼上的正解




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2