| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1235 人关注过本帖
标题:Z同学为了减肥,以后每天决定只消费1元,每花k元就可以再得到1元,一开始Z同 ...
只看楼主 加入收藏
马也987
Rank: 1
来 自:郑州轻工业学院
等 级:新手上路
帖 子:27
专家分:0
注 册:2013-4-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
Z同学为了减肥,以后每天决定只消费1元,每花k元就可以再得到1元,一开始Z同学有M元,问最多可以坚持多少天
#include<stdio.h>
int main()
{
    int m,k,s,t;
    scanf("%d",&m);
    scanf("%d",&k);
    t=m/k;
    s=m+t;
    printf("%d\n",s);
    return 0;
}
这个程序错在哪里,为什么运行正确,但上传到acm题库中却显示实错误的?
请高人指教
搜索更多相关主题的帖子: 减肥 return 
2013-04-08 21:40
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:5 
果断错误
题目意思你没理解

三十年河东,三十年河西,莫欺少年穷!
2013-04-08 21:48
mskeheng
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:48
专家分:179
注 册:2013-3-13
收藏
得分:15 
应该是算法存在一些问题吧。这里t的值应该是t=m/(k-1);
解释一下原因:假如m=8,k=5;
这时先消费5天,然后获得1元,还有4元,我们先向另外一个人借1元,然后又可以消费5天,最后获得1元再还给借的人。这样最终消费10天。
2013-04-08 21:51
马也987
Rank: 1
来 自:郑州轻工业学院
等 级:新手上路
帖 子:27
专家分:0
注 册:2013-4-8
收藏
得分:0 
回复 2楼 韶志
还是不太懂,运行的结果S为什么会是正确的。请指点!!
2013-04-08 21:53
马也987
Rank: 1
来 自:郑州轻工业学院
等 级:新手上路
帖 子:27
专家分:0
注 册:2013-4-8
收藏
得分:0 
回复 3楼 mskeheng
谢了!!!
2013-04-08 21:54
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
应该是这样啦
#include<stdio.h>
int main()
{
    int m,k,s,t=0,r;
    scanf("%d",&m);
    scanf("%d",&k);   
    while(1)
    {   
        s=m-k;
        
        if(s<0)
        {
            r=k-m;
            if(r==1)
                printf("%d\n",t+m+1);
            else printf("%d\n",t+m);
            break;
        }
        else m=m-k+1;
        t+=k;
    }
    return 0;
}

[ 本帖最后由 韶志 于 2013-4-8 22:15 编辑 ]

三十年河东,三十年河西,莫欺少年穷!
2013-04-08 22:04
马也987
Rank: 1
来 自:郑州轻工业学院
等 级:新手上路
帖 子:27
专家分:0
注 册:2013-4-8
收藏
得分:0 
回复 6楼 韶志
#include<stdio.h>
int main()
{
    int m,k,i;
    scanf("%d",&m);
    scanf("%d",&k);
    for(i=1;i<=m;i++)
        if(i%k==0)
            m++;

    printf("%d\n",m);
    return 0;
}
我的最终答案,谢谢了,2楼的哥们!
2013-04-08 22:15
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
回复 7楼 马也987
   我竟然走弯路了...
被你的题目套进去了

不过你的程序貌似也不严谨哎~   因为可以存在借钱问题,就像楼上所说,m=8,k=5,答案应该是10    而你的程序结果是9

[ 本帖最后由 韶志 于 2013-4-8 22:20 编辑 ]

三十年河东,三十年河西,莫欺少年穷!
2013-04-08 22:17
快速回复:Z同学为了减肥,以后每天决定只消费1元,每花k元就可以再得到1元,一开 ...
数据加载中...
 
   



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

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