day18 函式小練習,遞迴
阿新 • • 發佈:2018-11-08
1、寫一個函式,功能是告知 你所選定的小動物 的叫聲。
function animal(scream) {
scream = String(window.prompt('input'));
switch(scream){
case "dog" : console.log("汪");break;
case "cat" : console.log("喵");break;
case "bird": console.log("嘰");break;
}
}
animal();
2、寫一個函式,實現加法計數器。
function add(){ var result = 0; for(var i = 0; i <arguments.length; i++){ result += arguments[i]; } console.log(result); }
3、定義一組函式,輸入數字,逆轉並輸出漢字大寫形式。
function reverse(){ var num = window.prompt('input'); var str = " "; for(var i = num.length - 1; i >= 0; i --){ str += transfer(num[i]); } console.log(str); } reverse(); function transfer(target){ switch(target){ case "1": return "壹"; break; case "2": return "貳" ;break; case "3": return "叄" ;break; case "4": return "肆" ;break; case "5": return "伍" ;break; case "6": return "陸" ;break; case "7": return "柒" ;break; case "8": return "捌" ;break; case "9": return "玖" ;break; case "0": return "零" ;break; } }
4、寫一個函式,實現n的階乘。
function a(){
var n = window.prompt('input');
var num = 1;
for(var i = n; i >= 1; i--){
num *= i;
}
console.log(num);
}
a();
遞迴做法:
function mul(n){
if( n == 1 || n ==0 ){
return 1;
}
return n* mul(n-1);
}
5、寫一個函式,實現斐波那契數列。
function a(n){ var a = 1, b = 1; var temp = 0; for(var i = 0; i < n - 2; i++){ temp = a + b; a = b; b = temp; if(temp > 100){ return; } console.log(temp); } }
遞迴做法:
function fb(n){
if( n == 1 || n ==2){
return 1;
}
return fb(n - 1) + fb(n - 2);
}
遞迴:
程式呼叫自身的程式設計技巧稱為遞迴( recursion)。遞迴的能力在於用有限的語句來定義物件的無限集合。
一般來說,遞迴需要有邊界條件、遞迴前進段和遞迴返回段。當邊界條件不滿足時,遞迴前進;當邊界條件滿足時,遞迴返回。
寫遞迴函式步驟:
1)找規律
2)找出口