c语言递归例题分数_C语言递归练习(附答案)

dic

递归基础练习题:

1.

1+2+3+……+n

的值

//a+(a+1)+

+b

int sum(int a,int b)

{

if(b==a) return a;

return a+sum(a+1,b);

}

2

.

1*2*3*……*n

的值

a*(a+1)*(a+2)

*b

cheng(int begin,int end)

{

if(begin==end) return begin;

return begin * cheng(begin+1,end);

}

5

.

小猴子第一天摘下若干桃子

,

当即吃掉一半

,

又多吃一个

.

第二天早上又将剩下的桃子吃一

,

又多吃一个

.

以后每天早上吃前一天剩下的一半另一个

.

到第

10

天早上猴子想再吃时发现

,

只剩下一个桃子了

.

问第一天猴子共摘多少个桃子?

fruit(int begin,int times)

{

if(times==10) return begin;

return fruit((begin+1)*2,times+1);

}

7

.

一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经

过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭

子?

duck(int begin,int times)

{

if(times==7) return begin;

return duck((begin+1)*2,times+1);

}

8.

著名的菲波拉契

(Fibonacci)

数列,其第一项为

0

,第二项为

1

,从第三项开始,其每一项

都是前两项的和。编程求出该数列前

N

项数据。

int fbi(int i)

{

if(i<2)

{

if(i == 0) return 0;

else return 1;

}

return fbi(i-1) +fbi(i-2);

}

9

.

求两个数的最大公约数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值