国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++ 函數的遞歸調用

2019-11-11 07:12:39
字體:
來源:轉載
供稿:網友

在調用一個函數的過程中又出現直接或間接地調用該函數本身,稱為函數的遞歸(recursive)調用。包含遞歸調用的函數稱為遞歸函數。 比如:

int test(int x){ int y; y = test(x); return(2*y);}

以上是一個直接調用的例子,遞歸調用還包括間接調用,比如:

int first(int x){ int b; b = second(x); return(2*b);}int second(int y){ int a; a = first(y); return(2*a);}

從上面的程序可以看到,這樣執行后會出現無終止的自身調用,所以程序應該加入對用的判斷機制,讓遞歸在有限次數后停止。

舉個栗子: 用遞歸的方式求n!

#include <iostream>using namespace std;long fac(int);int main(){ int n; long y; cout <<"請輸入"; cin >>n; y = fac(n); cout<<n<<"!="<<y<<endl; getchar(); getchar(); return 0 ;}long fac(int n){ long f; if (n <0) { cout<<"錯誤!!!"<<endl; } else if(n== 0||n == 1) f =1; else f=fac(n-1)*n; return f;}

這里寫圖片描述

遞歸退出的條件:

else if(n== 0||n == 1) f =1;

如果n等于0或者等于1,那么執行f等于1,不在調用fac函數,退出了遞歸。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 安新县| 岚皋县| 吉木萨尔县| 唐山市| 肇州县| 聊城市| 彭水| 施甸县| 新宾| 宜良县| 翼城县| 北海市| 闻喜县| 汝阳县| 宽甸| 四子王旗| 龙州县| 加查县| 五河县| 乐陵市| 吴江市| 讷河市| 凉城县| 南皮县| 波密县| 余干县| 龙游县| 洛浦县| 崇州市| 正镶白旗| 若尔盖县| 新沂市| 丹江口市| 云和县| 濉溪县| 绍兴县| 扎兰屯市| 霍林郭勒市| 文登市| 连云港市| 灵川县|