Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2534956
  • 博文数量: 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

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

k11k11232011-05-12 13:48:14

我用lua 算出来的结果是3906
不知道和楼主的一样不一样