第二章 :查詢與排序---------遞迴、查詢與排序補充

Curtis_發表於2019-03-05

遞迴設計經驗:

①、找重複(子問題)

②、找重複中的變化量->引數

③、找引數變化趨勢->設計出口

 

求n的階乘:

*找重複:n*(n-1)的階乘,求n-1的階乘是原問題的重複(規模更小)----子問題
*找變化:變化的量應該作為引數 
*找邊界 :出口

 

#include<iostream>
using namespace std;
/*
**求n的階乘
**找重複:n*(n-1)的階乘,求n-1的階乘是原問題的重複(規模更小)----子問題
**找變化:變化的量應該作為引數 
**找邊界 :出口
*/

//n的階乘 
int f1(int n){
	if(n==1){
		return 1;
	}
	return n*f1(n-1);
} 

//列印i到j
void print(int i,int j){
	if(i>j) return;
	cout<<i<<" ";
	print(i+1,j);
} 

int main(){
	cout<<f1(3)<<endl;
	print(2,6);
	
	return 0;
} 

結果:

相關文章