原题链接:蓝桥杯算法提高VIP-任意年月日历输出
解题思路:
注意事项:
参考代码:
n,m=map(int,input().split())
def yunn(x):
s =0
for i in range(2007,x):
if i%100!=0 and i%4==0:
s += 1
if i%400==0:
s += 1
return s
def isyun(n):
if n%100!=0:
if n%4==0:
return 1
else:
return 0
else:
if n%400 ==0:
return 1
else:
return 0
def mnum(n,m):
dy={1:31,2:29,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}
dp={1:31,2:28,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}
global numm
if isyun(n)==0:
days = dp[m]
s=0
for i in range(1,m):
s += dp[i]
return [s,days]
else:
days = dy[m]
s=0
for i in range(1,m):
s += dy[i]
return [s,days]
num=(n-2007)*365+yunn(n)+mnum(n,m)[0]
yu=num%7+1
print('''---------------------
Su Mo Tu We Th Fr Sa
---------------------''')
print(' '*(yu*3),end='')
g=7-yu+1
h=1
for i in range((mnum(n,m)[1]+yu)//7):
for i in range(h,g):
print('%3d'%i,end='')
h =g
g+=7
print()
if (yu+mnum(n,m)[1])%7!=0:
for i in range(h,mnum(n,m)[1]+1):
print('%3d'%i,end='')
print()
print('---------------------')
else:
print('---------------------')0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复