JavaScript使用遞歸和循環(huán)實(shí)現(xiàn)階乘的實(shí)例代碼
【實(shí)現(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>兩種實(shí)現(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="計(jì)算"> </body> </html>
下面通過代碼看下javascript 中階乘函數(shù)方法
好久沒有弄了,練習(xí)下:
// 第一, 向上加的階層函數(shù)計(jì)算方法 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)實(shí)現(xiàn)階乘的實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- JavaScript采用遞歸算法計(jì)算階乘實(shí)例
- 從階乘函數(shù)對(duì)比Javascript和C#的異同
- JavaScript中常用的運(yùn)算符小結(jié)
- Js四則運(yùn)算函數(shù)代碼
- JS取模、取商及取整運(yùn)算方法示例
- JavaScript實(shí)現(xiàn)大數(shù)的運(yùn)算
- JS實(shí)現(xiàn)的加減乘除四則運(yùn)算計(jì)算器示例
- JavaScript中的數(shù)學(xué)運(yùn)算介紹
- 淺談JavaScript中運(yùn)算符的優(yōu)先級(jí)
- Javascript 浮點(diǎn)運(yùn)算精度問題分析與解決
- JS實(shí)現(xiàn)求5的階乘示例
相關(guān)文章
使用JavaScript獲取Django模板指定鍵值數(shù)據(jù)
這篇文章主要介紹了使用JavaScript獲取Django模板指定鍵值數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05JS幾個(gè)常用的函數(shù)和對(duì)象定義與用法示例
這篇文章主要介紹了JS幾個(gè)常用的函數(shù)和對(duì)象定義與用法,涉及JavaScript日期時(shí)間、數(shù)值計(jì)算及變量判斷等相關(guān)操作技巧,需要的朋友可以參考下2020-01-01學(xué)習(xí)JavaScript設(shè)計(jì)模式之裝飾者模式
這篇文章主要為大家介紹了JavaScript設(shè)計(jì)模式中的裝飾者模式,對(duì)JavaScript設(shè)計(jì)模式感興趣的小伙伴們可以參考一下2016-01-01JS實(shí)現(xiàn)數(shù)組深拷貝的方法分析
這篇文章主要介紹了JS實(shí)現(xiàn)數(shù)組深拷貝的方法,結(jié)合實(shí)例形式分析了javascript數(shù)組深拷貝的相關(guān)原理、實(shí)現(xiàn)方法及操作注意事項(xiàng),需要的朋友可以參考下2019-03-03JavaScript具有類似Lambda表達(dá)式編程能力的代碼(改進(jìn)版)
在之前的一篇博文中我介紹了一種方法可以讓JavaScript具有一種近似于Lambda表達(dá)式的編程能力——但是它有一些缺點(diǎn),其中妨礙它的使用的最主要的一條就是多了一層括號(hào),讓代碼變得難以閱讀。2010-09-09關(guān)于uniapp的request封裝保姆級(jí)教程
這篇文章主要給大家介紹了關(guān)于uniapp的request封裝保姆級(jí)教程,request是基于uni-app框架封裝的一個(gè)網(wǎng)絡(luò)請(qǐng)求庫,可以用于發(fā)送http請(qǐng)求和處理響應(yīng)數(shù)據(jù),需要的朋友可以參考下2023-07-07基于javascript實(shí)現(xiàn)的購物商城商品倒計(jì)時(shí)實(shí)例
本文主要介紹了基于javascript實(shí)現(xiàn)的購物商城商品倒計(jì)時(shí)實(shí)例,代碼詳細(xì),可直接復(fù)制試試看效果。需要的朋友可以參考借鑒2016-12-12