蓝桥杯初赛python-C组-第二题-特殊时间

题目描述:

解题思路:

解题思路:

运用数学中的分步相乘的原理

根据题目的要求,其实我们可以分为三大段,年为一段,月日为一段,时分为一段。每一段都可以组成4个数字的数(日月会补0),从中可以下图可以看出年的限制条件最宽松,其次是时,分 限制最严格的是月,日 所以先从月,日分析

在相同的数字中我们只能取 1 和 2 ,不可能出现 0 月,0 时

所有月日的组合可以是:(01,11)(02,22)03~09月无 (10,11)(11,01)(11,10~19)

(12,11)(12,22)

最严格的列出了,就可以让时分组成的一段进行匹配(如月是(01,11),那么时分可以为(01,11)(11,10)(11,01)(10,11)4种。年可以先不进匹配(因为总会有4种方法,所以最后乘以4就可以),先让月日与时分匹配。

def panduan(n): #判断满足题意字符串,设立函数进行判断
  if n.count('1')==3 or n.count('2')==3: #count()函数进行统计
    return True   #满足返回True
  return False   #不满足返回False
day=[]                # 月 日
for m in range(1,13): #月
  for d in range(1,31):  #日
    s="%02d%02d" %(m,d)  #格式化补 0
    s1=sorted(s) #排序好进行配对
    if panduan(s):  #判断是否满足题意
      day.append(s1)
hour=[]               # 时间:小时和分钟
for h in range(0,24):  #时
  for m in range(0,60):  #分
    s="%02d%02d" %(h,m)
    s1=sorted(s)    #排序好进行配对
    if panduan(s):  #判断是否满足题意
      hour.append(s1)
sum = 0
for j in day: #遍历月日
    for k in hour: #遍历时分
      if j==k:  #进行 配对
        sum+=1  
print(sum*4)  #乘4就把年的情况加进去了

结果:

知识点:1.count()函数 2.列表的sort()函数append()函数遍历 3.格式化输出字符串

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xiao木 屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值