JS基础语法---函数练习part3---4个练习

练习1:求一个数字的阶乘

      function getJieCheng(num) {
        var result = 1;
        for (var i = 1; i <= num; i++) {
          result *= i;
        }
        return result;
      }
      console.log(getJieCheng(6)); //1*2*3*4*5*6

 

练习2:求一个数字的阶乘和 

ps: 

5的阶乘和:即5的阶乘+4的阶乘+3的阶乘+2的阶乘+1的阶乘
      function getJieChengSum(num) {
        var sum = 0; //
        for (var i = 1; i <= num; i++) {
          sum += getJieCheng(i);
        }
        return sum;
      }
      console.log(getJieChengSum(5)); // 1+2+6+24+120
      //函数内部可以调用其它函数

 

*函数function getJieCheng(num)被调用了:

 

练习3: 求斐波那契数列

ps: 1 1 2 3 5 8 13 21 34 55 89 144

      function getFib(num) {
        var num1 = 1;
        var num2 = 1;
        var sum = 0;
        for (var i = 3; i <= num; i++) {
          sum = num1 + num2;
          num1 = num2;
          num2 = sum;
        }
        return sum;
      }
      console.log(getFib(12));//144

 

练习4:输入,年月日,获取这个日期是这一年的第多少天

      //判断这个年份是不是闰年
      function isLeapYear() {
        return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
      }

      function getDays(year, month, day) {
        //定义变量存储对应的天数
        var days = day;
        //如果用户输入的是一月份,没必要向后算天数,直接返回天数
        if (month == 1) {
          return days;
        }
        //代码执行到这里-----说明用户输入的不是1月份
        //定义一个数组,存储每个月份的天数
        var months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
        //小于的是输入的月份-1
        for (var i = 0; i < month - 1; i++) {
          days += months[i];
        }
        //判断这个年份是不是闰年,且始第二个月起
        if (isLeapYear && month > 2) {
          days++;
        }
        return days;
      }
      console.log(getDays(2019,11,27));

 

附加:函数里面可以调用其他的函数

         function f1() {
           console.log("我是一个函数");
           f2();//函数的调用
         }
         function f2() {
           console.log("我也是一个函数");
         }
      
         f1();

 

posted @ 2019-11-27 15:35  jane_panyiyun  阅读(397)  评论(0编辑  收藏  举报