题目

卡片

标签:填空题 2021 省赛

代码

# 方法1
import os
import sys

# 请在此输入您的代码
num = ''
i = 1

while num.count('1')<2021:
  num = ''.join((num,str(i)))
  i += 1

print(i-1)
# 方法2(推荐)
import os
import sys

# 请在此输入您的代码
count = 0
i = 1

while count<2021:
    count += str(i).count('1')
    i += 1

print(i-1)

算法思想

从 1 开始消耗卡片拼数字,求当消耗完 2021 张 0-9 的卡片后,刚好拼到几。

1-10 共消耗了 2 张 1,其余数字各 1 张,所以 1 是最先被消耗完的,故以 1 的数量作为循环的判别标准。

笔记

在此处我第一次想到,字符串是不是列表? 经查阅资料,在很多语言中,字符串的本质都是 字符列表

这代表着它有着和列表相似的特性,并可以使用列表的一些方法。但这并不等于完全相同,所以有一些针对列表的操作并不能对字符串进行使用(具体请查阅参考资料)。

参考资料

Python——字符串、列表