经典案例-打印杨辉三角、计算天数

//日期计算 用户输入年月日,返回是这一年的第几天
let readline = require("readline-sync");
console.log("请输入年份");
let year = parseInt(readline.question(""));
console.log("请输入月份");
let month = parseInt(readline.question(""));
console.log("请输入日期");
let day = parseInt(readline.question(""));
let sum = 0;
switch(month-1)
{
  case 11:
    sum += 30;
  case 10:
    sum += 31;
  case 9:
    sum += 30;
  case 8:
    sum +=31;
  case 7:
    sum += 31;
  case 6:
    sum += 30;
  case 5:
    sum += 31;
  case 4:
    sum += 30;
  case 3:
    sum += 31;
  case 2:
  {
    if((year%4==0 && year%100!=0) || year%400==0)
    {
      sum += 29;
    }
    else{
      sum += 28;
    }
  }
  case 1:
    sum += 31;
}
console.log(`这是今年的第${sum+day}`);
//打印杨辉三角
//      1
//    1   1
//   1  2   1
// 1  3   3   1
// 例如用户输入4
// 1行  1个数   a[0][0]   1
// 2行  2个数   a[1][0]   1    a[1][1]   1
// 3行  3个数   a[2][0]   1    a[2][1]   2     a[2][2]   1
// 4行  4个数   a[3][0]   1    a[3][1]   3     a[3][2]   3     a[3][3]    1
// 假设数组的第一个下标为i  第二个下标为j
// j=0   a[i][j] = 1
// i==j  a[i][j] = 1
//       a[i][j] = a[i-1][j-1] + a[i-1][j]
let readline = require("readline-sync");
console.log("请输入杨辉三角的行数:");
let line = parseInt(readline.question(""));
let arr = [];//声明一个空数组用于存储杨辉三角里面的数
let str = "";//用于拼接字符串
//外层for循环用于控制杨辉三角的行数
for(let i=0;i<line;i++)
{
  arr[i] = [];//开辟空间,使其成为二维数组
  //内层for循环 控制要打印数字的个数 通过上面简单分析 第多少行 就打印多少个数
  for(let j=0;j<=i;j++)
  {
    if(j==0 || i==j)
    {
      arr[i][j] = 1;
    }
    else{
      arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
    }
  }
  //该层for循环主要用于打印空格
  for(let j=0;j<line-i;j++)
  {
    str += " ";
  }
  console.log(str + arr[i]);//打印前面的空格以及该行数字
  str = "";//清空空格的字符串
}

 

转载于:https://www.cnblogs.com/opacity-m/p/8016910.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值