- /*
- 项目需求:
-
- 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);
- }
复制代码 |
|