奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語言

C語言函數的遞歸調用

時間:2024-08-26 01:51:56 C語言 我要投稿

C語言函數的遞歸調用

  一個函數在它的函數體內調用它自身稱為遞歸調用,這種函數稱為遞歸函數。執行遞歸函數將反復調用其自身,每調用一次就進入新的一層。

C語言函數的遞歸調用

  【示例】用遞歸計算 n!。階乘 n! 的計算公式如下:

  根據公式編程:

  long factorial(int n){

  long result;

  if(n==0 || n==1){

  result = 1;

  }else{

  result = factorial(n-1) * n; // 遞歸調用

  }

  return result;

  }

  這是一個典型的遞歸函數。調用factorial后即進入函數體,只有當 n==0 或 n==1 時函數才會執行結束,否則就一直調用它自身。

  由于每次調用的實參為 n-1,即把 n-1 的值賦給形參 n,所以每次遞歸實參的值都減 1,直到最后 n-1 的值為 1 時再作遞歸調用,形參 n 的值也為1,遞歸就終止了,會逐層退出。

  例如求 5!,即調用factorial(5)。當進入factorial函數體后,由于 n=5,不等于0或1,所以執行result = factorial(n-1) * n;,即result = factorial(5-1) * 5;,接下來也就是調用factorial(4)。這是第一次遞歸。

  進行四次遞歸調用后,實參的值為 1,也就是調用factorial(1)。這時遞歸就結束了,開始逐層返回。factorial(1) 的值為 1,factorial(2) 的值為 1*2=2,factorial(3) 的值為 2*3=6,factorial(4) 的`值為 6*4=24,最后返回值 factorial(5) 為 24*5=120。

  注意:為了防止遞歸調用無終止地進行,必須在函數內有終止遞歸調用的手段。常用的辦法是加條件判斷,滿足某種條件后就不再作遞歸調用,然后逐層返回。

  遞歸調用不但難于理解,而且開銷很大,如非必要,不推薦使用遞歸。很多遞歸調用可以用迭代(循環)來代替。

  【示例】用迭代法求 n!。

  復制純文本新窗口

  long factorial(int n){

  int i;

  long result=1;

  if(n==0 || n==1){

  return 1;

  }

  for(i=1; i<=n; i++){

  result *= i;

  }

  return result;

  }

【C語言函數的遞歸調用】相關文章:

C語言函數的遞歸和調用11-28

C語言函數遞歸教程03-30

Java程序調用C/C++語言函數的方法12-01

C++調用C函數的方法11-15

java調用c函數的實例04-03

C語言程序的可讀性和函數的調用03-19

C++如何調用matlab函數06-29

c語言調用系統命令12-05

c語言數學函數的介紹10-20

主站蜘蛛池模板: 岳阳县| 彰化市| 新昌县| 尼木县| 丰台区| 信宜市| 柳江县| 台东县| 长宁区| 谷城县| 昌宁县| 平定县| 青州市| 蒲江县| 疏附县| 平陆县| 通化县| 乐平市| 潢川县| 岳池县| 深水埗区| 靖江市| 珠海市| 云龙县| 万全县| 虹口区| 衡水市| 阿尔山市| 页游| 承德县| 六枝特区| 哈巴河县| 灵石县| 曲沃县| 潞城市| 榕江县| 梧州市| 开化县| 盖州市| 昔阳县| 兴宁市|