#includeiostream
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:主機域名、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、北塔網(wǎng)站維護、網(wǎng)站推廣。
using namespace std;
void print(int w)
{
int i;
if(w==0) return;
print(w-1);
for(i=1;iw;i++) printf("%d ",w);
printf("%d\n",w);
}
int main()
{print (5);}
首先是要這個求解的問題,適合用遞歸方法來進行求解。找到這個遞歸解法結(jié)束遞歸的條件。遞歸函數(shù)中,首先第一個語句就是如果滿足遞歸條件,就直接返回確定的值,否則返回使用遞歸方法求解的表達式。
遞歸函數(shù)有三點要求:
1,遞歸的終止點,即遞歸函數(shù)的出口
2,不斷的遞歸調(diào)用自身
3,遞歸函數(shù)主體內(nèi)容,即遞歸函數(shù)需要做的事情
ps:3一般可以放在2的前面或者后面,一般1放最前面。另外,2和3可以根據(jù)不同的需要合并,比如,有時候遞歸函數(shù)的主體就是返回調(diào)用下層函數(shù)所得到的結(jié)果。
具體例子如下:
void?fun(int?n)
{
if(n=0)?return;???//1?這是遞歸的終點,即出口
fun(n-1);????????//2、遞歸函數(shù)自身的調(diào)用
coutnendl;?????//3?遞歸函數(shù)的主體內(nèi)容
}
2,3合并的情況
int?fun(int?n)
{
if(n=0)?return?0;
return?fun(n-1)+fun(n-2);??//2?3合并
}