利用Python/C语言解决分鱼问题

 A、B、C、D、E这5个人合伙夜间捕鱼,凌晨时都已经疲惫不堪,于是各自在河边的树丛中找地方睡着了。第二天日上三竿时,A第一个醒来,他将鱼平分为5份,把多余的一条扔回河中,然后拿着自己的一份回家去了;B第二个醒来,但不知道A已经拿走了一份鱼,于是他将剩下的鱼平分为5份,扔掉多余的一条,然后只拿走了自己的一份;接着C、D、E依次醒来,也都按同样的办法分鱼。问这5人至少合伙捕到多少条鱼?每个人醒来后所看到的鱼是多少条?

设总共捕了x条鱼,每个人看到的鱼共有Xn条, 则:
X1=x
X2=(X1-1)/5*4
X3=(X2-1)/5*4
X4=(X3-1)/5*4
X5=(X4-1)/5*4
其中,(Xn-1)%5=0必定成立,即题中所提到的,扔掉一条,取五分之一。

那么就有x,使得递推所得到的项满足(Xn-1)%5=0即可。

C:

    #include<stdio.h>
    int fish(int n, int x)//递归函数
    {
        if((x-1)%5 == 0)
        {
            if(n == 1)
                return 1; //递归完成
            else
                return fish(n-1, (x-1)/5*4);//继续递归  
        }
        return 0;  //所取数值不符合题意,返回main()重新
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值