1. 程式人生 > >day18 函式小練習,遞迴

day18 函式小練習,遞迴

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)找出口