1、編寫遞歸函數求 1+2+3+……+n 的和;
目前創新互聯建站已為超過千家的企業提供了網站建設、域名、虛擬空間、網站托管、服務器托管、企業網站設計、柳林網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。
2、編寫遞歸函數求 2*4*6*……*(2n) 的積;
3、編寫遞歸函數求 n 的階乘;
4、漢諾塔問題;
實際上很多問題都可以通過遞歸來實現,但是看到你的情況估計較難的你實現不了,所以給你幾個簡單的練習一下,這樣可以增強對遞歸的理解,等理解的較為深入后再做稍微難一些的。
這個是遞歸函數:
recursion(int x,int y)
{
if(y-1 == x)return x;
else return x+recursion(x+1);
}
使用的時候用另個函數調用。
#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為
無符號整數
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函數求的是x的i次方,分母為
i的
階乘。本部分可以優化,因為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;
}
新聞名稱:c語言遞歸函數訓練題 c語言 遞歸函數
URL標題:http://m.kartarina.com/article4/dodsiie.html
成都網站建設公司_創新互聯,為您提供外貿建站、品牌網站制作、響應式網站、、網站改版、網站策劃
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯