【蓝桥杯每日一题】---卡片

一、题目

小蓝有很多数字卡片,每张卡片上都是数字 0 到 9。

小蓝准备用这些卡片来拼一些数,他想从 1 开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。

小蓝想知道自己能从 1 拼到多少。

例如,当小蓝有 30 张卡片,其中 0 到 9 各 3 张,则小蓝可以拼出 1 到 10,

但是拼 11 时卡片 1 已经只有一张了,不够拼出 11。

现在小蓝手里有 0 到 9 的卡片各 2021 张,共 20210 张,请问小蓝可以从 1 拼到多少?

二:解析

先读懂题,只要 ‘1’ 没了,就不能再拼数字了。‘1 ’最多出现2021次,从1开始遍历,将数字转为字符串,遍历字符串,每出现一个‘1’,2021 -=1,直到‘1’在某个数里变为0,那这个数就是答案。

三、代码展示

count = 0
i = 1
while True:
    count += str(i).count('1') # 数字1肯定是消耗的最快的
    if count == 2021:
        print(i)
        break
    i += 1

每日一题,结束。
今天把递归学了学,然后做题,递归的题还是不会做,之后我会再看一遍,总结题解思路。

做个总结,上周做的题和学到的思路:

门牌制作:count()计数
链接: http://t.csdn.cn/e7AMz
跑步训练:datetime模块相关函数的使用

你可能感兴趣的:(蓝桥杯)