见过一道小学奥数题,记得题目是:从5月1日到7月1日数字0-9无重复的时间有多少个?(如0512142804是05月12日14:28:04,其中0、1、4有重复, 0526174839无重复)

这是一道关于小学奥数的题目,要求计算从5月1日至7月1日期间,表示时间的数字0-9不重复的组合数量。文章探讨了两种解决方案,一种代码简洁但运行效率较低,另一种则更快。
摘要由CSDN通过智能技术生成

奥数练习题

两种做法:

第一种代码少但是运行慢

#05 06 07
#31 30 31
#00-23 00-59 00-59
sum=0
for i in itertools.product([str(i) for i in range(5,8)],[str(i) for i in range(1,32)],[str(i) for i in range(0,24)],[str(i) for i in range(0,60)],[str(i) for i in range(0,60)]):
    i=list(i)
    for j in range(len(i)):
        if len(i[j])==1:
            i[j]='0'+i[j]
    temp=''
    for j in i:
        temp=temp+j
    n=0
    for j in range(10):
        if temp.count(str(j))>1:
            n=n+1
            break
    if n==0 :
        if i[0]=='07'and i[1]!='01':
            
            pass
        else:
            sum=sum+1
print(sum)

第二种快:

#5月1到7月1 
date=[]
for i in range(1,31):
    date.append('05'+str(i).rjust(2,'0'))
    date.append('06'&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值