• 枚举--生理周期


    题目:生理周期

    人有体力、情商、智商的高峰日子,它们分别每隔23天、28天和33天出现一次。对于每个人,我们想知道何时三个高峰落在同一天。给定三个高峰出现的日子p,e和i(不一定是第一次高峰出现的日子),再给定另一个指定的日子d,你的任务是输出日子d之后,下一次三个高峰落在同一天的日子(用距离d的天数表示)。例如:给定日子为10,下次出现三个高峰同一天的日子是12,则输出2。

    输入:输入四个整数:p,e,i和d。p,e,i分别表示体力、情感和智力高峰出现的日子。d是给定的日子,可能小于p,e或i。所有给定日子是非负的并且小于或等于365,所求的日子小于或等于21252。
    输出:从给定日子起,下一次三个高峰同一天的日子(距离给定日子的天数)。

    输入样例:5 20 34 325
    输出样例:Case 3: the next triple peak occurs in 19575 days.

    import sys

    while 1:
    p, e, i, d = map(int, input("请输入p,e,i,d四个数值,以空格间隔:").split(" "))
    if p <= 0 or e <= 0 or i<= 0 or d <= 0:
    print("请输入正确的数值!")
    continue
    #break
    else:
    k = d + 1
    while k > 0:
    if (k - p) % 23 == 0:
    break
    k = k + 1
    while 1:
    if (k - e) % 28 == 0:
    break
    k = k + 23 #每次增加23目的是减少循环的次数,+23说明每次的k都是能被23整除的
    while 1:
    if (k - i) % 33 == 0:
    break
    k = k + 23 * 28
    k = k - d
    print("the next triple peak occurs in %d days" % k)
    exit(0)

    有些部分需要完善,目前先这样了^.^





  • 相关阅读:
    poj 1222 EXTENDED LIGHTS OUT (高斯消元 )
    poj 2187 Beauty Contest (凸包: 最远点对,最长直径 , 旋转卡壳法)
    poj 1408 Fishnet (几何:线段相交 + 叉积 求面积 )
    poj 1228 Grandpa's Estate ( 凸包 )
    高斯消元 模版
    poj 1830 开关问题 (高斯消元 )
    poj 1113 Wall (凸包:周长)
    旋转卡壳算法
    poj 1681 Painter's Problem (高斯消元 )
    字符串相关处理
  • 原文地址:https://www.cnblogs.com/an-wl/p/12249462.html
Copyright © 2020-2023  润新知