java打印杨辉三角形 (漂亮格式)

题目

打印出杨辉三角形(要求打印出10行)

在这里插入图片描述

思路

  1. 找规律,除了第一和第二行,其余每行都是开头结尾是1
  2. 且数字等于上一行左右两边的和
  3. 为了格式好看,用二维数组,默认全是0,遇到有数字就赋值,没数字的保持0,打印的时候输出空格
  4. 如果空格输出是两个 数字printf时应该用2d 如果是三个 则3d

代码实现:

private static void yanghuiTriangle(int row1) {
  if (row1 == 1) {
   System.out.println(1);
  }else {
   int[][] arr1 = new int[row1][2*row1+1];//动态创建默认全是0 0的就不用赋值了
   for (int j = 0; j < arr1.length; j++) {//行数
    for (int j2 = 0; j2 < arr1[0].length; j2++) {//列数
     if (j == 0) {//如果是第一行
      arr1[j][row1]= 1;
     }else if (j == 1) {
      arr1[j][row1]= 2;
      arr1[j][row1-2] = 1;
      arr1[j][row1+2] = 1;
     }else {
      if (j2 == row1-1-j || j2 == 2*row1 -(row1-1-j)) {
       arr1[j][j2]= 1;//首尾的1先赋值
      }
      if (j2 >row1-1-j && j2 < 2*row1 -(row1-1-j)) {
       arr1[j][j2]=arr1[j-1][j2-1]+arr1[j-1][j2+1];
      }//在首尾之间的数遵循规律 
     }
    }
   }
   for (int j = 0; j < arr1.length; j++) {
    for (int j2 = 0; j2 < arr1[j].length; j2++) {
     if (arr1[j][j2] == 0) {//为0 就是没赋值  输出空格
      System.out.print("   ");
     }else {
      System.out.printf("%3d",arr1[j][j2]);//输出值
     }
    }
    System.out.println();
   }
  }
 }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值