亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

js學習筆記 2-04 函數練習

標簽:
JavaScript
函数练习
//判断一个数是否是素数
//质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。
function isPrime(num){
    if(typeof num !=="number" || num<=1 || num%1 !== 0){
        console.log("咱能正常传个大于1的自然数麽");
        return false;
        }
        var isZS=true;//假设是素数
         for(var i=2;i<=Math.sqrt(num);i++){
                if(num%i===0){//除尽不是素数
                        isZS = false;
                }
         }
      return isZS;//返回布尔值
}
console.log(isPrime(1.1))//false
console.log(isPrime(23))//true
//求阶乘
function getJC(num){
        if(typeof num !=="number" || num<0 || num%1 !== 0){
        console.log("咱认真的传传值可以伐");
        return false;
        }
        var sum = 1;
        for(var i=2;i<=num;i++){
            sum*=i;
        }
        return sum;
}
console.log(getJC(0))//1
console.log(getJC(1))//1
console.log(getJC(2))//2
console.log(getJC(3))//6
//求0!+1!+2!+3!+...+n!
function getSumJC(n){
    if(typeof n !=="number" || n<0 || n%1 !== 0){
        console.log("咱认真的传传值可以伐");
        return false;
    }
    var sum = 1;
    for(var i = 1;i<=n;i++){
        sum+=getJC(i)
    }
    return sum;
}
console.log(getSumJC(0))//1
console.log(getSumJC(1))//2
console.log(getSumJC(2))//4
//求斐波拉契数列Fibonacci中的第 n个数是多少?
//1 1 2 3 5 8 13 21 ...
function Fibonacci(n){
    var n1=1;
    var n2=1;
    var num = 1;
    for(var i=3;i<=n;i++){
        num = n1+n2;
        n1=n2;
        n2=num;
    }
    return num;
}
//输入某年某月某日,判断这一天是这一年的第几天?
  function isRn(year){
        if((year%4===0&&year%100!==0)||year%400===0){
            return true;
        }
        return false;
    }

 function getDayNum(year,month,day){
    //每个月的天数  假设二月是28天
    //如果是1月直接返回天数 day
    //如果不是1月,要累加之前每个月的天数+day
    var days=day;//总共的天数
    var months=[31,28,31,30,31,30,31,31,30,31,30,31];
    for(var i=0;i<month-1;i++){
        days+=month[i];
    }
    //如果是闰年并且月份大于2  days+1
    //闰年:能被4整除并且不能被100整除,或者能被400整除
  if(month>2&&isRn(year)){
       days++;
  }
    return days;
 }
递归
方法自身调用,还要有结束条件
//从前有座山,山里有个庙...
var i=0;
function say(){
    console.log("从前有座山,山里有个庙..."+i);
    i++;
    if(i<10){
        say();
    }
}
say()
//  求 n 个数的累加 
function getSum(n){
  if(typeof num !=="number" || num<=0 || num%1 !== 0){
        console.log("有本事你传个正整数试试");
        return 0;
   }
   if(n===1){
        return 1;
    }
   return  n+getSum(n-1)
}
console.log(getSum(100))//5050
//输入一个数,求这个数的各位数字之和
//123  
//123%10=3  123/10=12.3
//12%10=2   12/10=1.2
//1%10=1  1/10=0.1

function getSum(n){
   //结束条件
   if(n<10){
        return n;
    }
   return  n%10+getSum(parseInt(n/10));
}
//求斐波拉契数列Fibonacci中的第 n个数是多少?
function Fibonacci(n){
    if(typeof n !=="number" || n<=0 || n%1 !== 0){
        return "咱认真传值可以伐";
   }
    if(n===1||n===2){
        return 1;
    }
    return  Fibonacci(n-1) + Fibonacci(n-2);
}
函数可以作为另一个函数的参数
//求两个数数学运算的结果
/**
 * 
 * @param a  {number}
 * @param b {number}
 * @param fn {function}
 */
function getResult(a, b, fn){
    console.log(a, b, fn)//5, 6 ,function (x, y){return x+y;}
    return  fn(a, b);//11 函数getResult() 返回结果是一个函数fn(); 
}
var f1 = function(x, y){
    return x+y;
};
var result= getResult(5, 6, f1);// 把5, 6, f1三个参数传个函数getResult()
console.log(result)
點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
Web前端工程師
手記
粉絲
9
獲贊與收藏
45

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消