美文网首页
Biorhythms

Biorhythms

作者: Chilkings | 来源:发表于2019-05-10 12:12 被阅读0次

    http://poj.org/problem?id=1006

    例如:给定时间为10,下次出现三个高峰同天的时间是12,则输出2(注意这里不是3)。
    所以num-d是所求的值
    num满足以下条件,其实就是中国剩余定理。
    num % 23 == p; num % 28 == e; num % 33 == i

    因为有范围限制
    当 num - d > 21252 时
    result = (num - d) %= 21252;
    如果此时result<=0
    那么(num-d) += 21252   
    
    #include<stdio.h>
     
    #define MAX 21252
     
    int main()
    {
        int p, e, i, d, n, count = 0;
        
        while( scanf("%d%d%d%d", &p, &e, &i, &d) != EOF )
        {
                    count++;
            if(p == -1 && e == -1 && i == -1 && d == -1)
            {
                break;
                    }
     
            n = ( 33*28*6*p + 23*33*19*e + 23*28*2*i - d ) % MAX;
            // 6 ,19 ,2 分别是 33*28 23*33 23*28的逆元 
            
            if( n <= 0 )   // 范围限制 
            {
                n += 21252;
                    }
            
            printf("Case %d: the next triple peak occurs in %d days.\n", count, n );
        }
        return 0;
    }
    
    

    相关文章

      网友评论

          本文标题:Biorhythms

          本文链接:https://www.haomeiwen.com/subject/xbrmwqtx.html