LQBv1-Python题:高斯日记

题目标题: 高斯日记

大数学家高斯有个好习惯:无论如何都要记日记。

他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210

后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?

高斯出生于:1777年4月30日。

在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。

高斯获得博士学位的那天日记上标着:8113   

请你算出高斯获得博士学位的年月日。

然后由于我是个菜鸡,不会做…我给把逆向思维写出来了
在这里插入图片描述
正解如下:

import datetime

if __name__ == '__main__':
    birth = datetime.datetime.strptime('1777-04-30', '%Y-%m-%d')
    new = birth + datetime.timedelta(days=8112)
    print(new)

# 输出结果如下
1799-07-16 00:00:00

然后计算存在这世上消耗多少天氧气的代码如下:

print('输入你的出生年月日:')
year = int(input('year:'))
month = int(input('month:'))
day = int(input('day:'))

print('输入当前年月日:')
year_now = int(input('year:'))
month_now = int(input('month:'))
day_now = int(input('day:'))


def time(month, day):
    global sum
    months = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334)
    if 0 <= month <= 12:
        sum = months[month - 1]
    else:
        print('data error')
    sum += day
    return sum


def year_(year_, year_now):
    sumss = 0
    year_ += 1
    while year_ < year_now:
        if (year_ % 400 == 0) or ((year_ % 4 == 0) and (year_ % 100 != 0)):
            sumss += 366
            year_ += 1
        else:
            sumss += 365
            year_ += 1
    return sumss


t1 = time(month_now, day_now)
y = year_(year, year_now)
t2 = time(month, day)
leap = 0
if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
    leap = 1
elif (leap == 1) and (month > 2):
    t2 = 366 - t2
else:
    t2 = 365 - t2

end_sum = t2 + t1 + y

print('到该日期你存活了{}天'.format(end_sum))

今天…不合格…

你可能感兴趣的:(LQB,python,算法)