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

Posted opacity-m

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经典案例-打印杨辉三角计算天数相关的知识,希望对你有一定的参考价值。

//日期计算 用户输入年月日,返回是这一年的第几天
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 = "";//清空空格的字符串
}

 

以上是关于经典案例-打印杨辉三角计算天数的主要内容,如果未能解决你的问题,请参考以下文章

初学python算法100例-案例22 居中输出三角形

Golang实现杨辉三角

python打印杨辉三角的两种方法及详解

pl/sql练习案例

使用从循环内的代码片段中提取的函数避免代码冗余/计算开销

用队列计算并打印杨辉三角的前8行 请高手来调试啊啊啊啊啊啊