您当前的位置: 首页 >  Python

孑渡

暂无认证

  • 2浏览

    0关注

    178博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

算法刷题系列(三)蓝桥杯python基础练习1

孑渡 发布时间:2021-01-30 17:15:59 ,浏览量:2

- 闰年判断

资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个年份,判断这一年是不是闰年。 当以下情况之一满足时,这一年是闰年: 1. 年份是4的倍数而不是100的倍数; 2. 年份是400的倍数。 其他的年份都不是闰年。 输入格式 输入包含一个整数y,表示当前的年份。 输出格式 输出一行,如果给定的年份是闰年,则输出yes,否则输出no。

  • 解答程序
y = int(input())
if y % 4 == 0:
    if y % 100 == 0:
        if y % 400 == 0:
            print('yes')
        else:
            print('no')
    else:
        print('yes')
else:
    print('no')
  • 经验教训 无。

- 闰年判断

资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个年份,判断这一年是不是闰年。 当以下情况之一满足时,这一年是闰年: 1. 年份是4的倍数而不是100的倍数; 2. 年份是400的倍数。 其他的年份都不是闰年。 输入格式 输入包含一个整数y,表示当前的年份。 输出格式 输出一行,如果给定的年份是闰年,则输出yes,否则输出no。

  • 解答程序
y = int(input())
if y % 4 == 0:
    if y % 100 == 0:
        if y % 400 == 0:
            print('yes')
        else:
            print('no')
    else:
        print('yes')
else:
    print('no')
  • 经验教训 无。

- 闰年判断

资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个年份,判断这一年是不是闰年。 当以下情况之一满足时,这一年是闰年: 1. 年份是4的倍数而不是100的倍数; 2. 年份是400的倍数。 其他的年份都不是闰年。 输入格式 输入包含一个整数y,表示当前的年份。 输出格式 输出一行,如果给定的年份是闰年,则输出yes,否则输出no。

  • 解答程序
y = int(input())
if y % 4 == 0:
    if y % 100 == 0:
        if y % 400 == 0:
            print('yes')
        else:
            print('no')
    else:
        print('yes')
else:
    print('no')
  • 经验教训 无。

- 01字串

资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是: 00000 00001 00010 00011 00100 请按从小到大的顺序输出这32种01串。 输入格式 本试题没有输入。 输出格式 输出32行,按从小到大的顺序每行一个长度为5的01串。 样例输出 00000 00001 00010 00011

  • 解答程序
for i in range(32):
    count = i
    temp = ""
    flag = [0, 0, 0, 0, 0]
    if count >= 16:
        flag[4] = 1
        count = count - 16
        if count >= 8:
            flag[3] = 1
            count = count - 8
            if count >= 4:
                flag[2] = 1
                count = count - 4
                if count == 3:
                    flag[1] = 1
                    flag[0] = 1
                elif count == 2:
                    flag[1] = 1
                    flag[0] = 0
                elif count == 1:
                    flag[1] = 0
                    flag[0] = 1
                elif count == 0:
                    flag[1] = 0
                    flag[0] = 0
            else:
                flag[2] = 0
                if count == 3:
                    flag[1] = 1
                    flag[0] = 1
                elif count == 2:
                    flag[1] = 1
                    flag[0] = 0
                elif count == 1:
                    flag[1] = 0
                    flag[0] = 1
                elif count == 0:
                    flag[1] = 0
                    flag[0] = 0
        else:
            flag[3] = 0
            if count >= 4:
                flag[2] = 1
                count = count - 4
                if count == 3:
                    flag[1] = 1
                    flag[0] = 1
                elif count == 2:
                    flag[1] = 1
                    flag[0] = 0
                elif count == 1:
                    flag[1] = 0
                    flag[0] = 1
                elif count == 0:
                    flag[1] = 0
                    flag[0] = 0
            else:
                flag[2] = 0
                if count == 3:
                    flag[1] = 1
                    flag[0] = 1
                elif count == 2:
                    flag[1] = 1
                    flag[0] = 0
                elif count == 1:
                    flag[1] = 0
                    flag[0] = 1
                elif count == 0:
                    flag[1] = 0
                    flag[0] = 0
    else:
        flag[4] = 0
        if count >= 8:
            flag[3] = 1
            count = count - 8
            if count >= 4:
                flag[2] = 1
                count = count - 4
                if count == 3:
                    flag[1] = 1
                    flag[0] = 1
                elif count == 2:
                    flag[1] = 1
                    flag[0] = 0
                elif count == 1:
                    flag[1] = 0
                    flag[0] = 1
                elif count == 0:
                    flag[1] = 0
                    flag[0] = 0
            else:
                flag[2] = 0
                if count == 3:
                    flag[1] = 1
                    flag[0] = 1
                elif count == 2:
                    flag[1] = 1
                    flag[0] = 0
                elif count == 1:
                    flag[1] = 0
                    flag[0] = 1
                elif count == 0:
                    flag[1] = 0
                    flag[0] = 0
        else:
            flag[3] = 0
            if count >= 4:
                flag[2] = 1
                count = count - 4
                if count == 3:
                    flag[1] = 1
                    flag[0] = 1
                elif count == 2:
                    flag[1] = 1
                    flag[0] = 0
                elif count == 1:
                    flag[1] = 0
                    flag[0] = 1
                elif count == 0:
                    flag[1] = 0
                    flag[0] = 0
            else:
                flag[2] = 0
                if count == 3:
                    flag[1] = 1
                    flag[0] = 1
                elif count == 2:
                    flag[1] = 1
                    flag[0] = 0
                elif count == 1:
                    flag[1] = 0
                    flag[0] = 1
                elif count == 0:
                    flag[1] = 0
                    flag[0] = 0
    flag = [flag[4 - i] for i in range(5)]
    print("".join(map(str, flag))) 
  • 经验教训 1、加权输出的逻辑顺序弄反了,因此最后flag数组又做了一次翻转。 2、最初第一遍测试时没有发现count等于幂次的情况,后加上了等于号。 3、函数意识不够,事实上在上方取了count - 2^k之后才发现可以将判断统一为函数的,最初并没有发现。 4、整数列表输出为字符串的方法: “”.join(map(str, flag)) 5、python提供bin函数,利用这个可以快速将整数变为二进制,因此本题也可以这样写
for i in range(32):
    print("0" * (5-len(bin(i)[2:])) + bin(i)[2:])
关注
打赏
1663211900
查看更多评论
立即登录/注册

微信扫码登录

0.0409s