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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 又欠又欠 中级黑马   /  2016-4-6 21:24  /  1073 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只 
    猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了 
    一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的, 
    问海滩上原来最少有多少个桃子?
main() 
{int i,m,j,k,count; for(i=4;i<10000;i+=4) { count=0; m=i; 
for(k=0;k<5;k++) { 
  j=i/4*5+1;   i=j; 
  if(j%4==0)    count++;   else    break; } 
  i=m; 
  if(count==4) 
  {printf("%d\n",count);    break;} } }

8 个回复

倒序浏览
没看懂你写的啥,这个明显一个递归方法就可以搞定了
假设猴子数量是monkeyNum,函数返回的是桃子总数,方法如下:
  1. int dispartPeaches(int monkeyNum){
  2.     int sum=0;
  3.     if (monkeyNum==1) {
  4.         return 6;//由于求的是最少有多少桃子,最后一个猴子肯定分的是6个(5+1)
  5.     }
  6.     if(monkeyNum>1){
  7.         sum=dispartPeaches(monkeyNum-1)*5+1;
  8.         NSLog(@"sum%d=%d",monkeyNum,sum);
  9.     }
  10.     return sum;
  11. }
复制代码
回复 使用道具 举报
没看懂                 
回复 使用道具 举报
代码写的格式看着也是难懂
回复 使用道具 举报
muzipiao 发表于 2016-4-6 22:57
没看懂你写的啥,这个明显一个递归方法就可以搞定了
假设猴子数量是monkeyNum,函数返回的是桃子总数,方法 ...

代码中monkeyNum=1的时候直接return了,这个函数不就结束了,还怎么递归啊?
回复 使用道具 举报
堕落天使 发表于 2016-4-8 06:50
代码中monkeyNum=1的时候直接return了,这个函数不就结束了,还怎么递归啊?

一只猴子能把桃子分成5份,还多一个,一份肯定最少1个,那最少肯定是6个啊,一只猴子肯定不用递归了,直接算就行了
回复 使用道具 举报
感谢分享
回复 使用道具 举报
不懂啊!看不懂!
回复 使用道具 举报
感觉很高深的样子,我要去好好学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马