JavaScript使用遞歸和循環(huán)實現(xiàn)階乘的實例代碼
【實現(xiàn)方法】
1.利用while循環(huán)來做,當(dāng)然for循環(huán)也可以。
2.遞歸
【代碼內(nèi)容】
偷懶,直接用onkeyup事件來限制來頁面的輸入
循環(huán)代碼:
//第一種方法 while循環(huán) oCount.onclick = function (){ var oNum = document.getElementById('num').value; oNum = Number(oNum); if(oNum <= 1){ oBox.innerHTML = 1; } var oRes = 1; while(oNum){ oRes *= oNum; oNum--; } oBox.innerHTML = oRes; }
遞歸代碼
// 第二種方法 遞歸 oCount.onclick = function(){ var oNum = document.getElementById('num').value; oNum = Number(oNum); function factorial (num) { if (num <= 1) { return 1; } else { return (num * factorial(num-1)); } }; oRes=factorial(oNum); oBox.innerHTML = oRes; };
完整代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>兩種實現(xiàn)階乘方法</title> <style> #box { width: 100%; height: 200px; border: 1px solid #ccc; text-align: center; } </style> <script> window.onload = function() { var oBox = document.getElementById('box'); var oCount = document.getElementById('count'); // 第一種方法 while循環(huán) // oCount.onclick = function (){ // var oNum = document.getElementById('num').value; // oNum = Number(oNum); // if(oNum <= 1){ // oBox.innerHTML = 1; // } // var oRes = 1; // while(oNum){ // oRes *= oNum; // oNum--; // } // oBox.innerHTML = oRes; // } // 第二種方法 oCount.onclick = function(){ var oNum = document.getElementById('num').value; oNum = Number(oNum); function factorial (num) { if (num <= 1) { return 1; } else { return (num * factorial(num-1)); } }; oRes=factorial(oNum); oBox.innerHTML = oRes; }; } </script> </head> <body> <div id="box"></div> <input type="text" id="num" onkeyup="value=value.replace(/[^0-9]/g,'')" onpaste="value=value.replace(/[^0-9]/g,'')" oncontextmenu = "value=value.replace(/[^0-9]/g,'')"> <input type="button" id="count" value="計算"> </body> </html>
下面通過代碼看下javascript 中階乘函數(shù)方法
好久沒有弄了,練習(xí)下:
// 第一, 向上加的階層函數(shù)計算方法 var number = function(n) { if(n == 1) { return 1 } else { product = 1; for(i = 1; i <= n; i++) { product *= i; } return product; } } var d = number(5); alert(d); // 第二, 往下減的階層函數(shù) var del = function(n) { if(n == 1) { return 1 } else { return n * del(n - 1); } } var data= del(5); alert(data);
總結(jié)
以上所述是小編給大家介紹的JavaScript使用遞歸和循環(huán)實現(xiàn)階乘的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
使用JavaScript獲取Django模板指定鍵值數(shù)據(jù)
這篇文章主要介紹了使用JavaScript獲取Django模板指定鍵值數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05學(xué)習(xí)JavaScript設(shè)計模式之裝飾者模式
這篇文章主要為大家介紹了JavaScript設(shè)計模式中的裝飾者模式,對JavaScript設(shè)計模式感興趣的小伙伴們可以參考一下2016-01-01JavaScript具有類似Lambda表達(dá)式編程能力的代碼(改進(jìn)版)
在之前的一篇博文中我介紹了一種方法可以讓JavaScript具有一種近似于Lambda表達(dá)式的編程能力——但是它有一些缺點,其中妨礙它的使用的最主要的一條就是多了一層括號,讓代碼變得難以閱讀。2010-09-09基于javascript實現(xiàn)的購物商城商品倒計時實例
本文主要介紹了基于javascript實現(xiàn)的購物商城商品倒計時實例,代碼詳細(xì),可直接復(fù)制試試看效果。需要的朋友可以參考借鑒2016-12-12