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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 看海的管家 中级黑马   /  2015-10-3 14:06  /  489 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

打印出杨辉三角形怎么打印

3 个回复

倒序浏览
思路: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();
                }
        }
}
回复 使用道具 举报
楼上正解
回复 使用道具 举报
楼上的正解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马