导航:网站首页 >
北大ACM第1006,我用C语言写的,调试时都是成功的为什么提交时出现Wrong Answer;请各位C语言大虾们看看
时间:2019-7-14
北大ACM第1006,我用C语言写的,调试时都是成功的为什么提交时出现Wrong Answer;请各位C语言大虾们看看
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
int f(int p,int e,int i,int d)
{
int m,s,t,j;
for(j=1;j=21252)
return 21252-d;
if(d=0&&p=0&&e=0&&i=0&&d
相关问题:
匿名网友:
显然是
if(m>=21252)
return 21252-d;
这个地方有问题.他只是说最终所求天数是小于21252的.不是说m >= 21252就按照21252来计算.
另外:
1、判断p是否能整除28、33最方便的方式是求模:
if( ((m - e) % 28 == 0) && ((m - p) % 33 == 0))
2、循环的时候显然用33这个最大的数,才能保证循环的次数尽可能的小;
下面是很久以前写的一个:
int get_days(int p ,int e ,int r ,int d) {
int res = r + 33;
while(!(((res - e) % 28 ==0) && (res - p) % 23 ==0)) {
res += 33;
}
res -= d;
while(res > 0) {
res -= 21252;
}
while(res
大家还关注:
北大ACM第1006,我用C语言写的,调试时都是成功的为什么提交时...
1个答案 - 提问时间: 2014-05-09
问题说明:人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为...
回答:帮你做了算法的修正1. 两个For loop都从0开始2. 两个For loop外面的if都删掉3. 无需储存所有input以后再算,可以读一组算一组#include<stdio.h>#include<iostream&... 2014-5-9
北大ACM1001 exponentiation 用C语言怎么写呢?对高精度数应该怎...
1个答案 - 提问时间: 2014-10-03
回答:昨天刚做的这个题,现在把大概思路和代码(c++)给你吧这个题很明显不能直接乘,因为没有那个类型能到达如此之精度,因为有好多次方吗,于是我把每次相乘的结果... 2014-10-3
C语言 ACM水题 求改错 BNUOJ1006
3个答案 - 提问时间: 2014-12-04
问题说明:Description 当你在小学学习算数的时候,老师会教你把两个数由右至左按位...
回答:我看应该是没错,就是可能判断条件(a&&b)有问题,如果输入1 0你就停止工作了- 2014-12-4
C语言问题,帮我看看我的代码哪里错了 北大ACM1003- Hangover
1个答案 - 提问时间: 2018-02-08 - 3个赞
问题说明:题目:DescriptionHow far can you make a stack of cards overhang a table? ...
回答:一点小错误:while(cards!=0.00 && cards>=0.01 && cards 评论0 3 0 2018-2-8
c语言北大ACM—OJ-1002的一个小问题-
1个答案 - 提问时间: 2014-03-01
问题说明:#include <stdio.h>#include <string.h>int main(){ int i,j,k=0,l,n,count[...
回答:本人的烂代码,参考下下。感觉你的效率很低,而且部分地方还有问题。#include #include #include int map[26]={2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,... 2014-3-1
请教下我用C语言写的杭电ACM2016题哪里错了
2个答案 - 提问时间: 2015-05-14
问题说明:自己运行没有问题,结果也对,但是提交上去就是wrong answer…… 题目是...
回答:把我百度知道的给抄过来- 是HDU2014吧。。 你的代码这样改就AC乐。。 汗~! 无语,才发现我用G++提交AC了,用C提交就错了。。 汗~! 我试了下,你原来的代码... 2015-5-14
北大acm中的问题(有关C语言的):financial management
1个答案 - 提问时间: 2014-05-03
问题说明:Financial ManagementTime Limit: 1000MSMemory Limit: 10000KTotal ...
回答:好吧,你的翻译很雷人。。。比如:原文:Each number will be positive and displayed to the penny. No dollar sign will be included.你的翻译:每个数字都将是积极的,并显... 2014-5-3
ACM校赛联系题,用C语言写 小白,刚学
1个答案 - 提问时间: 2017-04-12
回答:#include int main(){ int T; char s[100]; scanf("%d",&T); getchar(); while(T--) { gets(s); printf("%s%s\n",s,s); } return 0;} 2017-4-12
北大ACM试题1005 急!!!!!!
4个答案 - 提问时间: 2008-12-25
问:下面是我的代码,错在何处? 我在visualc++6.0上成功了,可是......#includeint ...
回答:scanf("%d",*); --- scanf("%f",&x); x是小写,C语言是有大小写之分的.for(i=0;i 评论0 0 0 2008-12-26
acm一道题, 用C语言 求助求助 高分~~
2个答案 - 提问时间: 2010-11-29
问:http://acm.hdu.edu.cn/showproblem.php?pid=1002 题目在这 A+B的题目 超出...
回答:问题就是楼上说的那样,acm题在实现题目要求的前提下要尽量效率高,就是时间复杂度、空间复杂度要低,你看一下我的代码: #includeint main(){int i,n;double ... 2010-11-29
问题推荐