黑马程序员技术交流社区
标题:
一道关于递归的测试题
[打印本页]
作者:
Ios_bawenlong
时间:
2015-4-15 01:00
标题:
一道关于递归的测试题
/*
项目需求:
A/B/C/D/E 5个人在某天夜里合伙去捕鱼,到凌晨时都疲惫不堪,于是各自找地方睡觉,第二天,A第一个醒来,他将鱼分成5份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分成5份,把多余的一条鱼扔掉,拿走自己的一份。C/D/E依次醒来,按同样的方法拿鱼。问他们合伙至少捕了多少条鱼?
*/
#include <stdio.h>
void max ();//使用循环处理
int fish(int nmb);//使用递归处理
int main(int argc, const char * argv[]) {
//循环
max();
//定义变量接受返回值
int test = 0;
//递归
test = fish(5);
//输出结果
printf("%d\n",test);
return 0;
}
int fish(int nmb){
//定义变量记录捕鱼数
int nmbMin ;
if (nmb == 0) {
//递归结束值
nmbMin = 1;
}else{
//递归逆推
nmbMin = fish(nmb - 1) * 5 + 1;
}
return nmbMin;
}
void max (){
//定义变量记录捕鱼数
int nmbMin = 1;
for (int k = 0; k < 5; k++) {
//总数
nmbMin = (5 * nmbMin +1);
}
//输出
printf("%d\n",nmbMin);
}
复制代码
作者:
wslinke
时间:
2015-4-15 11:32
非常感谢 学习了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2