| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1391 人关注过本帖
标题:一道课本例题,没看懂,也没想好怎么做,大家给个思路
只看楼主 加入收藏
soky
Rank: 4
等 级:业余侠客
帖 子:126
专家分:228
注 册:2009-7-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:20 
一道课本例题,没看懂,也没想好怎么做,大家给个思路
说:五个好朋友分一堆苹果,第一个人把苹果分成5份,为了公平,扔掉多余的1个苹果,拿上自己的一份走了。第二个人来了,又把剩余的苹果分成5份,扔掉了多余的一个,拿上了自己的一份走了。以后来的三个人都这样做的。那么,最初有多少苹果?
头都晕了,要考虑,(a-1)/5*4;

ps:我用笨办法做了一个,结果是3121
#include<stdio.h>
int main()
{
int a,b,c,d,e,i;
for(i=2;i<65536;i++)
{
    if((i-1)%5==0)
    {
        a=4*(i-1)/5;
        if((a-1)%5==0)
        {
            b=4*(a-1)/5;
            if((b-1)%5==0)
            {
                c=4*(b-1)/5;
                if((c-1)%5==0)
                {
                    d=4*(c-1)/5;
                    if((d-1)%5==0)
                    {
                        printf("%d",i);
                        break;
                    }
                }
            }
        }
    }
}

}

[[it] 本帖最后由 soky 于 2009-7-24 00:35 编辑 [/it]]
搜索更多相关主题的帖子: 思路 课本 例题 
2009-07-23 21:04
asmdaydream
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:中原
等 级:版主
威 望:13
帖 子:257
专家分:840
注 册:2009-5-10
收藏
得分:0 
假设最后一个人拿了n个
他来的时候就有5n+1个
倒数第二个就会有(5n+1)*5 +1个
int n,num;
for(int i=1;i<5;i++(
{
    num = 5n+1;
    n   = num;
}

估计这样就可以算出一开始有多少个了

常走夜路不怕黑 长沙PHP高薪招聘群6K+ 95926136
2009-07-23 21:50
soky
Rank: 4
等 级:业余侠客
帖 子:126
专家分:228
注 册:2009-7-13
收藏
得分:0 
以下是引用asmdaydream在2009-7-23 21:50的发言:

假设最后一个人拿了n个
他来的时候就有5n+1个
倒数第二个就会有(5n+1)*5 +1个
int n,num;
for(int i=1;i<5;i++(
{
    num = 5n+1;
    n   = num;
}
估计这样就可以算出一开始有多少个了

这样不对,因为第一个人拿走后,剩下的是一个4的整倍数,而且减去1后是5的倍数。
2009-07-23 22:02
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:2 
回复 楼主 soky
给你发个程序,也是书上的范例,你自己琢磨吧:
程序代码:
#include<stdio.h>

int main(void)
{
    int x,n;
    float y;

    x=1;
    y=5*x+1;
    for(n=1;n<=5;)
    {
        y=5*y/4+1;
        ++n;
        if(y-(int)y>0.0)
        {
            ++x;
            y=5*x+1;
            n=1;
        }
    }
    printf("%d\n",(int)y);

    return 0;
}
2009-07-23 22:26
asmdaydream
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:中原
等 级:版主
威 望:13
帖 子:257
专家分:840
注 册:2009-5-10
收藏
得分:0 
恩,看来我的想法确实有问题!!
谢谢 soky兄弟提醒

常走夜路不怕黑 长沙PHP高薪招聘群6K+ 95926136
2009-07-23 22:34
soky
Rank: 4
等 级:业余侠客
帖 子:126
专家分:228
注 册:2009-7-13
收藏
得分:0 
以下是引用广陵绝唱在2009-7-23 22:26的发言:

给你发个程序,也是书上的范例,你自己琢磨吧:

#include<stdio.h>

int main(void)
{
    int x,n;
    float y;

    x=1;
    y=5*x+1;
    for(n=1;n<=5;)
    {
        y=5*y/4+1;
        ++n;
        if(y-(int)y>0.0)
        {
         ...

用你这个运行是15621,课本给的是3121,先研究下你的代码吧,谢了
2009-07-23 22:36
soky
Rank: 4
等 级:业余侠客
帖 子:126
专家分:228
注 册:2009-7-13
收藏
得分:0 
以下是引用asmdaydream在2009-7-23 22:34的发言:

恩,看来我的想法确实有问题!!
谢谢 soky兄弟提醒

应该我谢你,帮我做题,虽然有些问题,但是尽力了,呵呵。
2009-07-23 22:37
arthaszu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:90
专家分:163
注 册:2009-6-29
收藏
得分:2 
#include<stdio.h>
main()
{
    int n;
    n=5*5*5*5*5-4;
    printf("%d",n);
}
 
需要解释吗?

To  four  years  in  each  other's
2009-07-23 23:57
soky
Rank: 4
等 级:业余侠客
帖 子:126
专家分:228
注 册:2009-7-13
收藏
得分:0 
以下是引用arthaszu在2009-7-23 23:57的发言:

#include<stdio.h>
main()
{
    int n;
    n=5*5*5*5*5-4;
    printf("%d",n);
}
 
需要解释吗?

需要,能问下,为什么要这么做么?

[[it] 本帖最后由 soky 于 2009-7-24 00:18 编辑 [/it]]
2009-07-23 23:59
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
回复 6楼 soky
实在对不起,我只是照搬了书上的范例,而没去验证它的结果正确性,不过书上的答案与我运行后的结果均是 15621 。

    如果这个程序对您产生了任何不良后果,对此深表抱歉。
2009-07-24 03:48
快速回复:一道课本例题,没看懂,也没想好怎么做,大家给个思路
数据加载中...
 
   



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

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