javaScript實現迴文數、水仙花數判斷和輸出斐波那契數列

來源:互聯網
上載者:User

標籤:javascript 迴文數 水仙花數 斐波那契數列

    // 判斷一個數是不是迴文數                 // 方法一:先將數字轉換成字串,然後依次判斷第一個和最後一個數字,第二個和倒數第二個數字...是否相等    function PalindromeNumber1(num){        var str = num.toString();        var flag = true;        var len = str.length;        for(var i = 0; i < (len - 1) / 2; i++){            if( str.charAt(i) != str.charAt(len-i-1) ){                flag = false;                break;            }        }        if(flag){            console.log(num + " 是迴文數");        }else{            console.log(num + " 不是迴文數");                    }    }    PalindromeNumber1(123456321); // 123456321 不是迴文數            // 方法二:方法一的另一種寫法    function PalindromeNumber2(num){        var str = num.toString();        var flag = true;        var begin = 0, end = str.length - 1;          while( begin < end ){            if(str.charAt(begin) == str.charAt(end)){                begin ++;                end --;            }else{                flag = false;                break;            }        }        if(flag){            console.log(num + " 是迴文數");        }else{            console.log(num + " 不是迴文數");                    }    }    PalindromeNumber2(123456321); // 123456321 不是迴文數            // 方法三: 將判斷的數倒置,然後判斷前後兩個數是否相等    function InvertedNumber(num){         var nNum= 0;        while( num != 0){             nNum *= 10;            nNum = nNum + (nNum % 10);            num = Math.floor( num / 10 );         }        return nNum;    }    function PalindromeNumber3(num){        var nNum = InvertedNumber(num);  // 將一個數逆序        if( nNum == num){                // 判斷逆置後的數是否和原來的數相同            console.log(num + " 是迴文數");        }else{            console.log(num + " 不是迴文數");         }    }    PalindromeNumber3(123456321); // 123456321 不是迴文數                // 判斷一個數是不是水仙花數: 水仙花數是指一個 n 位元 ( n≥3 ),它的每個位上的數位 n 次冪之和等於它本身。        //  將數群組轉換成字串,然後分別加上每個位置上的數n次冪    function NarcissusNumber(num){        var str = num.toString();        var len = str.length;        var result = 0;        for(var i=0; i<len; i++){            result += Math.pow(str.charAt(i), len);        }        if(result == num){            console.log(num + " 是水仙花數");        }else{            console.log(num + " 不是水仙花數");        }    }    NarcissusNumber(153);                    // 斐波那契數列: 輸出前n個數    /*        斐波那契數列:1、1、2、3、5、8、13、21、34、……        函數:使用公式f[n]=f[n-1]+f[n-2],依次遞迴計算,遞迴結束條件是f[1]=1,f[2]=1。    */        // 遞迴: 求第n個斐波那契數 ( 方法一 )    function fb1(n){         if( n==1 || n== 2){            return 1;        }        return fb1(n-1) + fb1(n-2);    }    // 輸出前n個斐波那契數    function Fibonacci1(num){        console.log(1);        for(var i=2; i <= num; i++){            console.log(fb1(i));        }    }    Fibonacci1(5);            // 非遞迴: 求第n個斐波那契數 ( 方法二 )    function fb2(n){        var a =1, b =1, result=1;        for(var i =2; i<= n; i++){            result = a + b;            a = b;            b = result;        }        return result;    }    // 輸出前n個斐波那契數    function Fibonacci2(num){        console.log(1);        for(var i=1; i < num; i++){            console.log(fb2(i));        }    }    Fibonacci2(5);           // 非遞迴:求第n個斐波那契數 ( 方法二 )   function fb3(n){       var result = [1,1];       if( n== 1 || n ==2){            return 1;       }       for(var i = 2; i < n; i++ ){            result[i] = result[i-1] + result[i-2];       }       return result[n-1];   }   // 輸出前n個斐波那契數   function Fibonacci3(num){        console.log(1);        for(var i=1; i <= num; i++){            console.log(fb3(i));        }    }    Fibonacci3(5);

javaScript實現迴文數、水仙花數判斷和輸出斐波那契數列

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.