码迷,mamicode.com
首页 > 其他好文 > 详细

枚举--生理周期

时间:2020-02-01 19:44:22      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:等于   高峰   int   nbsp   bre   ros   一个   else   整数   

题目:生理周期

人有体力、情商、智商的高峰日子,它们分别每隔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)

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





枚举--生理周期

标签:等于   高峰   int   nbsp   bre   ros   一个   else   整数   

原文地址:https://www.cnblogs.com/an-wl/p/12249462.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!