Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2539614
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2011-05-11 17:29:44

    a,b,c,d,e5个渔夫夜间合伙捕鱼,凌晨时都疲倦不堪,各自在河边的树丛中找地方睡着了。第二天,a第一个醒来,将鱼分成5份,将多余的一条放回河里。b,c,d,e依次醒来,也都同样的办法分鱼,问5个渔夫至少合伙捕了多少条鱼?
    我们可以倒过来分析,当最后一个醒来的时候,那么鱼的数量最少应该为5+1条,因此用6作为初始值,然后往上递推4次即可,编写代码如下:
  1. #include <stdio.h>

  2. int getfish(int init,int n)
  3. {
  4.   int s = init;
  5.   while(n){
  6.     s = 5*s + 1;
  7.     n--;
  8.   }

  9.   return s;
  10. }

  11. int main(int argc, char *argv[])
  12. {
  13.   printf("fish which were gotten by fishers at last are %d\n",getfish(6,4));
  14.   return 0;
  15. }
peng@ubuntu:~/src/test/c/suanfa/miaoqu$ gcc 6.11.c
peng@ubuntu:~/src/test/c/suanfa/miaoqu$ ./a.out 
fish which were gotten by fishers at last are 3906

阅读(6521) | 评论(6) | 转发(0) |
给主人留下些什么吧!~~

愚人陈2011-07-07 10:47:47

我没看懂题....
a都分成5份了,其他人还分什么呢?

合伙不到的鱼不是第一次就被a给均分5份了么...

limsco2011-05-13 20:53:40

???要说明什么?

网络安全服务2011-05-13 16:47:57

一条鱼``放生``

网络安全服务2011-05-13 16:47:48

一条鱼``放生``

candcpp2011-05-12 17:22:03

不如用:   getfish(1, 5);  
更直观, 分5次后,还剩一条鱼。