北大acm1006

题目链接:http://poj.org/problem?id=1006

我很神经地用了一个&和一个|,跑的结果是wrong answer,我以为是因为我的输出结果不对,可能需要全部一起输出,于是就改用了result[100]这个数组来保存结果,结果变成了runtime error,一直以为测试数据只是用sample input的,在本地跑也没任何问题,就不解了,后来同学一看,发现了&和|的问题,就改了再提交,还是runtime error,后来才知道,噢,100不够,测试数据不止止是sample的数据,就再改,依旧是wrong answer,然后一组特殊的测试值 24 29 34 0 一输入,发现答案是21253了,其实应该是1,才发现逻辑有点问题。。。再回头看,哦,一开始不用result数组的时候其实只是逻辑错而已。。。。。

Source Code

Problem: 1006   User: yuanting0505
Memory: N/A   Time: N/A
Language: C++   Result: Wrong Answer
    • Source Code
#include <iostream>

using namespace std;

int main(int argc, const char * argv[])

{

    int p,e,l,d;

    int test_case=1;

    cin>>p>>e>>l>>d;

    while((p!=-1)&&(e!=-1)&&(l!=-1)&&(d!=-1))

    {

        int n=1;

        while(((l+33*n-p)%23!=0)||((l+33*n-e)%28!=0))

        {

            n++;

        }
int result=l+33*n-d;
if(result>21252)result%=21252;
cout<<"Case "<<test_case<<": the next triple peak occurs in "<<result<<" days."<<endl; test_case++; cin>>p>>e>>l>>d; } return 0; }

你可能感兴趣的:(ACM)