A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 958721894 中级黑马   /  2016-5-6 00:34  /  592 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.Scanner;

/*
* 需求:打印杨辉三角形(行数可以键盘录入)
       
        1
        1 1       
        1 2 1
        1 3 3 1
        1 4 6 4 1
        1 5 10 10 5 1
       
        分析:每一行的第一个和最后一个元素为1
        从第三行开始,每一行第二个元素等于上一行的本列和前一列元素之和

*/

public class ArrayTest3 {
        public static void main(String[] args) {

                // 1.创建键盘录入对象
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入杨辉三角的行数");
                int n = sc.nextInt();
                // 2.定义一个二维数组
                int[][] arr = new int[n][n];
                // 3.为数组的每一行第一个和最后一个元素辅助
                for (int x = 0; x < arr.length; x++) {
                        arr[x][0] = 1;
                        arr[x][x] = 1;
                }
                // 4.为数组的其他元素辅助
                for (int i = 2; i < arr.length; i++) {
                        for (int j = 1; j <= i; j++) {
                                arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
                        }
                }
                // 5.遍历数组
                for (int i = 0; i < arr.length; i++) {
                        for (int j = 0; j <= i; j++) {
                                System.out.print(arr[i][j]);
                        }
                        System.out.println();
                }
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马