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

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

C++教程:C++函數的遞歸調用

2020-05-23 14:27:39
字體:
來源:轉載
供稿:網友
在高中數學中,我們學習過數列。我們知道數列有兩種表示方法,一種稱為通項公式,即項an和項數n的關系;還有一種稱為遞推公式,即后一項an和前一項a(n-1)之間的關系。通項公式能夠一下子把an求解出來,而遞推公式則要根據首項的值多次推導才能把第n項的值慢慢推導出來。如果有一個較為復雜的數列的遞推公式,人工將其轉化為通項公式或者將其的每一項求出實在非常麻煩,那么我們能不能直接把這個遞推公式交給計算機,讓它來為我們求解呢?

我們說過,在任何一個函數體內不能出現其它函數的定義。但是,在任一個函數體內可以調用任何函數,包括該函數本身。直接或者間接地在函數體內調用函數本身的現象稱為函數的遞歸。正是函數的遞歸,能夠幫我們解決遞推公式求解的問題。

現有一個數列,已知an=2*a(n-1)+3,并且a1=1,求解a1到a8的各項值。我們把數列問題轉化為函數問題,認為an=f(n),a(n-1)=f(n-1)……于是f(n)=2*f(n-1)+3,f(n-1)=2*f(n-1-1)+3……直到f(1)=1。我們根據前面的描述寫出以下程序:(程序6.6)
#include "iostream.h"
int f(int n);//看作數列an
int main()
{
   for (int i=1;i<=8;i++) 
   {
      cout <<"f(" <<i <<")=" <<f(i) <<endl;//輸出a1到a8的值
   }
   return 0;
}
int f(int n)
{
   if (n==1)
   {
      return 1;//告知a1=1
   }
   else
   {
      return 2*f(n-1)+3;//告訴電腦f(n)=2*f(n-1)+3
   }
}
運行結果:
f(1)=1
f(2)=5
f(3)=13
f(4)=29
f(5)=61
f(6)=125
f(7)=253
f(8)=509
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 太湖县| 松滋市| 商南县| 元谋县| 吐鲁番市| 景泰县| 北川| 大厂| 黑河市| 台江县| 澄城县| 巴林左旗| 洪洞县| 镇雄县| 盐亭县| 鹿邑县| 绍兴县| 焦作市| 鄂尔多斯市| 崇左市| 大连市| 浠水县| 藁城市| 恩施市| 台安县| 江永县| 化隆| 句容市| 平安县| 集贤县| 玉山县| 甘孜| 简阳市| 民和| 安西县| 宜君县| 延川县| 漯河市| 航空| 长岛县| 安顺市|