1、編寫遞歸函數(shù)求 1+2+3+……+n 的和;
目前創(chuàng)新互聯(lián)建站已為超過千家的企業(yè)提供了網(wǎng)站建設、域名、虛擬空間、網(wǎng)站托管、服務器托管、企業(yè)網(wǎng)站設計、柳林網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
2、編寫遞歸函數(shù)求 2*4*6*……*(2n) 的積;
3、編寫遞歸函數(shù)求 n 的階乘;
4、漢諾塔問題;
實際上很多問題都可以通過遞歸來實現(xiàn),但是看到你的情況估計較難的你實現(xiàn)不了,所以給你幾個簡單的練習一下,這樣可以增強對遞歸的理解,等理解的較為深入后再做稍微難一些的。
這個是遞歸函數(shù):
recursion(int x,int y)
{
if(y-1 == x)return x;
else return x+recursion(x+1);
}
使用的時候用另個函數(shù)調用。
#include
#include
/*求n的
階乘
,遞歸,
分母
部分
*
結束條件為:1的階乘=1
*
遞歸時,一定要有結束條件
*/
int
factorial
(n)
{
if(n==1)
//遞歸結束條件,1的階乘為1
return
1;
else
return
n*factorial(n-1);
//n的階乘為n乘以(n-1)!
}
int
main()
{
int
n,x;
size_t
i;
//i為
無符號整數(shù)
double
re=0;
printf("input
n
and
x:");
scanf("%d%d",n,x);
//輸入n和x的值
for(i=1;i=2*n-1;i+=2)
{
/*pow函數(shù)求的是x的i次方,分母為
i的
階乘。本部分可以優(yōu)化,因為i的階乘算出來了,所以i+2的階乘就是i的階乘*(i+1)*(i+2),不用重復來計算階乘。自己可以試試*/
re
+=
pow(x,i)/factorial(i);
}
printf("\nn=%d\tx=%d\tresult=%f\n",n,x,re);//打印出
最后的結果
return
0;
}