1.最短路

题解:这个采用暴力枚举,自己数一下就好了
2.门牌制作
题解:门牌号从1到2020,使用for循环遍历一遍,因为range函数无法调用最后一个数字,所以设置成1到2021即可,然后每一次for循环,都使用count计算i中有几个2,count函数是针对与数据容器的,所以把i要转换为字符串,在使用count,最后累加输出即可。
import os
import sys
请在此输入您的代码
num1 = 0
for i in range(1,2021):
num = str(i).count("2")
num1 += num
print(num1)
3.卡片

题解:for循环从1到一个很大的数遍历,每一次循环使用count找出i里面的1,因为1是最早出现的,当然也是最早用完卡片的,所以使用1拼完时,减1就可以找出拼到多少数了。
import os
import sys
请在此输入您的代码
num = 0
num1 = 0
for i in range(1,1000000):
x = str(i).count("1")
num += 1
num1 += x
if num1 > 2021:
print(num-1)
break
4.空间

题解:1MB=1024KB、1KB=1024B,所以1mb=1024*1024b,256mb=256*1024*1024b,一个字节占用8个位,所以32位二进制整数占用4个字符。