zoukankan      html  css  js  c++  java
  • POJ1006:Biorhythms——题解

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

    题目大意:

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

    中国剩余定理,具体是什么百度去。

    #include<cstdio>
    #include<cctype>
    #include<iostream>
    using namespace std;
    int main(){
        int r1,r2,r3,r;
        int i;  
        for(i=1,r1=28*33;;i++)  
            if(r1*i%23==1)break;  
        r1*=i;  
        for(i=1,r2=23*33;;i++)  
            if(r2*i%28==1)break;  
        r2*=i;  
        for(i=1,r3=23*28;;i++)  
            if(r3*i%33==1)break;  
        r3*=i;  
        r=23*28*33;  
        int p,e,k;
        int cnt=0;
        while(cin>>p>>e>>i>>k){
        if(p==e&&e==i&&i==k&&p==-1)return 0;
        cnt++;
        int sum=(r1*p+r2*e+r3*i-k)%r;
        sum=(sum+r-1)%r+1;
        printf("Case %d: the next triple peak occurs in %d days.
    ",cnt,sum);  
        }
        return 0;
    }
  • 相关阅读:
    Gitlab forbidden
    oracle查询directory_path
    oracle_backup
    oracle
    客户端读取图片文件
    Sql游标的使用
    Sql解锁 数据库死锁检测
    css3d总结
    Redis在Linux系统下的安装和启动
    Linux系统基本操作命令
  • 原文地址:https://www.cnblogs.com/luyouqi233/p/7904846.html
Copyright © 2011-2022 走看看