這個是遞歸函數:
振興網站制作公司哪家好,找創(chuàng)新互聯(lián)!從網頁設計、網站建設、微信開發(fā)、APP開發(fā)、響應式網站設計等網站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)自2013年創(chuàng)立以來到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創(chuàng)新互聯(lián)。
recursion(int x,int y)
{
if(y-1 == x)return x;
else return x+recursion(x+1);
}
使用的時候用另個函數調用。
int rec(int x,int n)
{
if(n==0)
return 1;
else
return rec(x,n-1)*x;
}
int main()
{
int x,n;
printf("請輸入x和n\n");
scanf("%d%d",x,n);
printf("結果是:%d\n",rec(x,n));
}
標個記號準備上傳對大神的源碼分析。好了,我分析了上樓大神的代碼實現,具體參考他的代碼,分享下。注:可以看看《算法精解》Kyle Loudon著 ?或者《數據結構》?主編 安訓國?他們說的堆棧原理。
#include?stdio.h
char*?dg(char*?instr,?char*?outstr,?char*?outstr2)?
{
if?(*instr?==?0)?
{
*outstr?=?0;
return?outstr2;
}
*(outstr?+?1)?=?*instr;
outstr?=?dg(instr?+?1,?outstr?+?2,?outstr2);
/*?下兩句一直不執(zhí)行,直到outstr?=?dg(instr?+?5,?outstr?+?10,?outstr2)返回后才執(zhí)行,其后不斷執(zhí)行后三句!*/
*outstr?=?*instr?-?32;
return?outstr?+?2;
}
int?main()
{
char?buf[50];
dg("aybdx",?buf,?buf);
puts(buf);
return?0;
}
if(a==1)a=1;
這句改成
if(a==1) return 1;
就OK了哦。。。你試試吧。。。
比如輸入4
結果是24
希望能幫到你。。。