zoukankan      html  css  js  c++  java
  • 4148生理周期

    总时间限制:
    1000ms
    内存限制:
    65536kB
    描述

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

    输入
    输入包含多组数据,每一组数据由四个整数组成,数据以-1 -1 -1 -1 结束。
    对于四个整数p, e, i和d,p, e, i分别表示体力、情感和智力高峰出现的时间(时间从当年的第一天开始计算)。d是给定的时间,可能小于p, e或i。所有给定时间是非负的并且小于或等于365,所求的时间小于或等于21252。
    输出
    从给定时间起,下一次三个高峰同一天的时间(距离给定时间的天数)。
    样例输入
    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
    样例输出
    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.
    来源
    East Central North America 1999
    【输出从给定时间开始(不包括给定时间)】说明天数是从d+1开始的,一种想法是for从d+1到21252,条件为天数减去每个高峰出现的日子再余相应的周期为0。但是这种方法需要一个一个试,其实可以
    跳着试,出现了一个体力高峰的日子,那从这个日子到体力高峰之间的日子肯定都不符合条件,所以可以先找到从d+1开始的第一个体力高峰,然后以体力周期为步长跳着找下一个体力和感情双高峰,找到这个爽高峰,再以体力和感情周期的最小公倍数为步长找满足三个周期的日子。
    语法:
    关于变量i的for(1;2;3);语句,不管语句3是递增的还是递减的,最后i的结果都是与语句2相反的。比如说:for(int i = 0;i<10;i++),那最后i=10,for(int i = 9;i!=3;i--),那最后i=3,我们这里是想找到(i-a)%28==0的日子,所以for语句里要写成相反的。
    #include<iostream>
    using namespace std;
    int main()
    {
    	int a,b,c,d;
    	int num = 1;
    	while (cin >>a >>b>>c>>d &&  a!=-1)
    	{
    		int i;
    		for(i = d+1;(i-a) % 23 !=0;++i);
    		for(;(i-b)%28!=0;i+=23);
    		for(;(i-c)%33!=0;i+=23*28);
    		cout <<"Case "<<num++<<": the next triple peak occurs in "<<i-d<<" days."<<endl;
    	}
    	return 0; 
    }
    
  • 相关阅读:
    第一节:SpringMVC概述
    SpringMVC【目录】
    Windows 系统快速查看文件MD5
    (error) ERR wrong number of arguments for 'hmset' command
    hive使用遇到的问题 cannot recognize input
    Overleaf支持的部分中文字体预览
    Understanding and Improving Fast Adversarial Training
    Django2实战示例 第十三章 上线
    Django2实战示例 第十二章 创建API
    Django2实战示例 第十一章 渲染和缓存课程内容
  • 原文地址:https://www.cnblogs.com/knmxx/p/10295859.html
Copyright © 2011-2022 走看看