A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Ios_bawenlong 中级黑马   /  2015-4-15 01:00  /  717 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*

  2. 项目需求:

  3. A/B/C/D/E 5个人在某天夜里合伙去捕鱼,到凌晨时都疲惫不堪,于是各自找地方睡觉,第二天,A第一个醒来,他将鱼分成5份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分成5份,把多余的一条鱼扔掉,拿走自己的一份。C/D/E依次醒来,按同样的方法拿鱼。问他们合伙至少捕了多少条鱼?

  4. */
  5. #include <stdio.h>
  6. void  max ();//使用循环处理
  7. int fish(int nmb);//使用递归处理

  8. int main(int argc, const char * argv[]) {
  9.    
  10.     //循环
  11.      max();
  12.    
  13.     //定义变量接受返回值
  14.     int test = 0;
  15.    
  16.     //递归
  17.     test = fish(5);
  18.    
  19.     //输出结果
  20.     printf("%d\n",test);
  21.    
  22.     return 0;
  23. }


  24. int fish(int nmb){
  25.    
  26.     //定义变量记录捕鱼数
  27.     int nmbMin ;
  28.    
  29.     if (nmb == 0) {
  30.         
  31.         //递归结束值
  32.         nmbMin = 1;
  33.         
  34.     }else{
  35.         
  36.         //递归逆推
  37.         nmbMin = fish(nmb - 1) * 5 + 1;
  38.     }
  39.    
  40.     return nmbMin;
  41. }


  42. void  max (){
  43.    
  44.         //定义变量记录捕鱼数
  45.         int nmbMin = 1;
  46.             
  47.         for (int k = 0; k < 5; k++) {
  48.             
  49.             //总数
  50.             nmbMin = (5 * nmbMin +1);
  51.         }
  52.    
  53.         //输出
  54.         printf("%d\n",nmbMin);
  55. }
复制代码

1 个回复

正序浏览
非常感谢 学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马