A,B,C,D,E五个人捕鱼后已凌晨,大家便睡觉。早上A第一个醒来,将鱼均分成五份,把多余的一条鱼扔掉,拿走自己的一份,B第二个醒来,也将鱼均分为五份,把多余的一条鱼扔掉,拿走自己的一份。CDE依次醒来,也按同样的方法拿鱼,问他们合伙至少捕了几条鱼。

  • 9
  • 31
  • 3121
  • 3906
2 收藏


直接登录
最新评论
  • renlytime 流程技术指导 2016/02/17

    3121?

  • sdkl   2016/02/17

    3906

  • 王先生 学生 2016/02/21

    答案为3121 可能对于许多程序员来说这只是一到普通的程序问题,完整程序如下
    #include
    void main(){
    int all=2;
    int aout=2;//用来存放最终的结果
    while(true){
    int i=5;
    int y=0;
    all=aout;
    while(i>0){
    if(all!=1&&all%5==1){
    all=(all-(all/5)-1);//丢掉一条,并分成五份
    i–;//做五次
    y++;
    }
    else i=0;
    }
    if(y==5){
    printf(“他们打了%d条鱼”,aout);
    break;
    }
    aout++;
    }
    }

  • 王先生 学生 2016/02/21

    但也可以用数学的思想来解决这个问题
    假如我们多给4条鱼的话,那么就正好都够分的了
    假如多给4条鱼之后鱼的数量为x;那么
    A拿走后剩下 x*4/5
    B拿走后剩下 x*4/5*4/5
    ……
    E拿走后剩下 x*4/5*4/5*4/5*4/5*4/5=x*10244/3125
    由于最后剩下的 的数量一定为整数所以鱼的数量为 3125-4=3121条

    • sdkl   2016/02/22

      因为是问至少几条鱼,所以假设E分完后每人只有一条鱼
      所以E看到的鱼有:1*5+1 = 6;
      同理D看到的鱼有:6*5+1 = 31;
      同理C看到的鱼有:31*5+1 = 156;
      同理B看到的鱼有:156*5+1 = 781;
      同理A看到的鱼有:781*5+1 = 3906;

      哪里错了吗?

    • CY。   2016/08/28

      如果一开始多给4条鱼,也不能保证A拿完了之后,B再拿的时候仍然是正好够分的把。