标题:ACM算法题PKU POJ 1006 Biorhythms
只看楼主
莫丶
Rank: 2
来 自:济南大学
等 级:论坛游民
帖 子:48
专家分:45
注 册:2011-1-2
结帖率:100%
已结贴  问题点数:20 回复次数:9 
ACM算法题PKU POJ 1006 Biorhythms
Description

人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23天、28天和33天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,智力周期的高峰,人会思维敏捷,精力容易高度集中。因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天。对于每个人,我们想知道何时三个高峰落在同一天。对于每个周期,我们会给出从当前年份的第一天开始,到出现高峰的天数(不一定是第一次高峰出现的时间)。你的任务是给定一个从当年第一天开始数的天数,输出从给定时间开始(不包括给定时间)下一次三个高峰落在同一天的时间(距给定时间的天数)。例如:给定时间为10,下次出现三个高峰同天的时间是12,则输出2(注意这里不是3)。
Input

输入四个整数:p, e, i和d。 p, e, i分别表示体力、情感和智力高峰出现的时间(时间从当年的第一天开始计算)。d 是给定的时间,可能小于p, e, 或 i。 所有给定时间是非负的并且小于365, 所求的时间小于21252。

当p = e = i = d = -1时,输入数据结束。
Output

从给定时间起,下一次三个高峰同天的时间(距离给定时间的天数)。

采用以下格式:
Case 1: the next triple peak occurs in 1234 days.

注意:即使结果是1天,也使用复数形式“days”。
Sample Input

0 0 0 0
0 0 0 100
5 20 34 325
4 5 6 7
283 102 23 320
203 301 203 40
-1 -1 -1 -1
Sample Output

Case 1: the next triple peak occurs in 21252 days.
Case 2: the next triple peak occurs in 21152 days.
Case 3: the next triple peak occurs in 19575 days.
Case 4: the next triple peak occurs in 16994 days.
Case 5: the next triple peak occurs in 8910 days.
Case 6: the next triple peak occurs in 10789 days.
我写的代码
程序代码:
#include "stdio.h"
int  main()
{
    int a=23,b=28,c=33,days=1,p,e,i,d,num=0;
    while(1)
    {
    scanf("%d%d%d%d",&p,&e,&i,&d);
    if(p==-1 && e==-1 && i==-1)
        break;
    while ( days%a!=(p%a) || days%b!=(e%b) || days%c!=(i%c))
        days++;
    printf("Case %d: the next triple peak occurs in %d days.\n",++num,days-d);
    days=0;
    }       
    return 0;
}
自己测试答案格式什么的都正确  但在网站上提交就提示Wrong Answer  哪里出问题了??
搜索更多相关主题的帖子: 出色 生理周期 高峰 
2011-12-17 23:18
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
得分:0 
你牛逼。找学长问问什么叫ACM题吧
2011-12-17 23:29
莫丶
Rank: 2
来 自:济南大学
等 级:论坛游民
帖 子:48
专家分:45
注 册:2011-1-2
得分:0 
给个回答吧
2011-12-17 23:30
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
得分:0 
输入数据不是固定的。你直接拿样例赋值干嘛
2011-12-17 23:33
莫丶
Rank: 2
来 自:济南大学
等 级:论坛游民
帖 子:48
专家分:45
注 册:2011-1-2
得分:0 
回复 4楼 czz5242199
3个周期就是题目中给定的
2011-12-18 11:08
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
得分:0 
。。。。
。我sb了,没看大清楚,我再看看吧
2011-12-18 11:32
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
得分:20 
如果day求出来小于d会发生错误
2011-12-18 11:38
莫丶
Rank: 2
来 自:济南大学
等 级:论坛游民
帖 子:48
专家分:45
注 册:2011-1-2
得分:0 
回复 7楼 czz5242199
应该不是这个问题  所有给定时间d是非负的并且小于365,days的结果都很大的,应该不会比d小
2011-12-18 11:44
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
得分:0 
别感性认识
2011-12-18 11:45
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
得分:0 
这么说吧,输入数据是1 1 1 2,你自己测测你的程序会怎么输出
2011-12-18 12:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-358016-1-1.html




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

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