根据下列信息计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上?

-- coding: utf-8 --

“””
Created on Sun Sep 06 08:51:53 2015

@author: MONKEY
根据下列信息计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上?

a) 1900.1.1是星期一
b) 1月,3月,5月,7月,8月,10月和12月是31天
c) 4月,6月,9月和11月是30天
d) 2月是28天,在闰年是29天
e) 公元年数能被4整除且又不能被100整除是闰年
f) 能直接被400整除也是闰年

输出格式:
一个正整数

对了,答案是171.

"""

num=0
day=2

for year in range(1901,2001):
    if (year%4==0 and year%100!=0) or (year%400==0): #判断为闰年
        for month in range(1,13):                    #对于12个月各自进行判断相#加
            if month==2:
                day+=1
            elif month==4 or month==6 or month==9 or month==11:
                day+=2
            else:
                day+=3


            if day>7:                                
                day%=7 
           # print day 
            if day==7:                                #若为星期天,则加一
                num+=1

    else:                                             #若不是闰年
        for month in range(1,13):
            if month==2:
                day+=0
            elif month==4 or month==6 or month==9 or month==11:
                day+=2
            else:
                day+=3

            if day>7:
                day%=7
            #print day
            if day==7:
                num+=1
           # print day

print num
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值