| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1094 人关注过本帖
标题:高手快来,求助一下
只看楼主 加入收藏
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
结帖率:78.13%
收藏
已结贴  问题点数:20 回复次数:10 
高手快来,求助一下
    A、B、C、D、E五个人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,保持走自己的一份。C、D、E依次醒来,也按同样的方法拿走鱼。问他们合伙至少捕了多少条鱼?


*****程序算不出数来,不知道为什么,求助一下********


#include <stdio.h>
int main()
{
    int s,sn;
    for(s=6;;s++)
    {
       sn=s;
       if((s-1)%5==0)
       {
           s=s-1-(s-1)/5;
           if((s-1)%5==0)
           {
                s=s-1-(s-1)/5;
                if((s-1)%5==0)
                {
                     s=s-1-(s-1)/5;
                     if((s-1)%5==0)
                     {
                          s=s-1-(s-1)/5;
                          if((s-1)%5==0)
                          {
                              printf("%d\n",sn);
                              break;
                          }
                     }
                }
           }
       }
    }

    return 0;
}
搜索更多相关主题的帖子: include 
2013-02-18 20:30
小旭哥
Rank: 2
等 级:论坛游民
帖 子:106
专家分:72
注 册:2012-11-4
收藏
得分:3 
能否用递归不?
int GetTotalInt( int iNumOfPeople )
{
     if( iNumOfPeoPle == 1 )
          return 5 * 1 + 1;
     else
          return GetTotalInt( iNumOfPeople - 1 );
}


我没有试了看看奥,如果有错,还望海涵。。。
2013-02-18 20:40
a646698961
Rank: 2
等 级:论坛游民
威 望:1
帖 子:49
专家分:94
注 册:2012-12-19
收藏
得分:3 
程序本身就是错的,因为s是经过运算后的s再自加得到的,而不是理想中的最初值s自加。
我也在想怎么做

欢迎来讨论和分享经验,QQ:646698961
2013-02-18 21:13
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
收藏
得分:3 
  s(n)只为整数
s(n)表示剩几人时的鱼数目 s(n)=5/4*s(n-1)+1;  s5=5/4*s4+1;  s4=5/4*s3+1;  s3=5/4*s2+1; s2=5/4*s1+1; s1=5/4*s0+1;
                                               不行                                   7.5     6     6     4*1=4=s0
                                               不行                                   14.75   11    11    4*2=8=s0
                                               不行                      26.25  21    21      16    16    4*3=12=s0
                                               不行                                                 21    4*4=16=s0
                                               不行                                   32.5   26     26    4*5=20=s0
                                                                                                    31    4*6=24
                                                                                46    46      36    36    4*7=28
                                                                                                    41    4*8=32
2013-02-18 21:15
小旭哥
Rank: 2
等 级:论坛游民
帖 子:106
专家分:72
注 册:2012-11-4
收藏
得分:0 
不好意思  我上面写错了
2013-02-18 21:16
a646698961
Rank: 2
等 级:论坛游民
威 望:1
帖 子:49
专家分:94
注 册:2012-12-19
收藏
得分:0 
程序代码:
#include <stdio.h>

main()
{
    int i,s,sn;
    for(sn = 6;;sn++)
    {
        s = sn;
        if((s - 1) % 5 == 0)
        {
            s = s - 1 - (s - 1) / 5;
            if((s - 1) % 5 == 0)
            {
                s = s - 1 - (s - 1) / 5;
                if((s - 1) % 5 == 0)
                {
                    s = s - 1 - (s - 1) / 5;
                    if((s - 1) % 5 == 0)
                    {
                        s = s - 1 - (s - 1) / 5;
                        if((s - 1) % 5 == 0)
                        {
                            printf("%d\n",sn);
                            break;
                        }
                    }
                }
            }
        }
    }
}

给你参考下,可以自己去算算,如果错了还请海涵

欢迎来讨论和分享经验,QQ:646698961
2013-02-18 21:36
yuzhengxin
Rank: 2
等 级:论坛游民
帖 子:7
专家分:12
注 册:2013-2-19
收藏
得分:3 
特点:每次拿之前是5倍数加1,拿之后是4的倍数加1,待下一个人拿之前又是5的倍数加1,而4与5是互质的...
所以:开始最少得是,5*5*5*5*5+1个才可以
当然:5*5*5*5*5*N+1亦可(N是任意的正整数)
2013-02-19 17:38
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
收藏
得分:0 
以下是引用a151141在2013-2-16 13:57:27的发言:

算法:最后一个猴子5x+1;
倒数第二个猴子5/4(5x+1)+1;
倒数第三个猴子5/4(5/4(5x+1)+1)+1;
......
x从1开始一个一个的试。
程序:
#include<stdio.h>
main()
{
    int j,k,sum,flag;  /*flag是判断是否符合的标准*/
    for(j=1;j<=1000;j++)    /*1000是个范围可以按需要改动*/
    {
        sum=j;flag=1;
        for(k=1;k<=5;k++)
        {
            if(k!=1)
            {
                if(sum%4==0)sum=sum/4;      /*这是关键的条件,每份必须是整数*/
                else
            
                {
                flag=0;break;
                }
            }
            sum=sum*5+1;
            
        }
        if(flag)printf("%d\n",sum);
    }
}


[ 本帖最后由 逆风而前 于 2013-2-20 19:49 编辑 ]
2013-02-20 19:38
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
收藏
得分:0 
在c语言论坛的名为《求指导。。。》贴子有。
2013-02-20 19:50
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:3 
解一个简单的同余方程而已
53x = 203 (mod 256)

结果是唯一的,没有至少。E最后拿走255条,总共有3121条。

重剑无锋,大巧不工
2013-02-20 20:45
快速回复:高手快来,求助一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017667 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved