题干大意:你有0-9的卡片若干张,需要从0开始拼数字 步长为1 直到数字用尽。
答案:3181
解题思路:由于数字的数量都是一样的 因此有一个数字肯定会最先用完 即 “1” 因此只需要判断 “1” 等于0的情况 就可以知道最后一个数是什么
代码详解:这里我用的是字典 遍历每个值 每有一个“1”就减一次Value 到0代表卡片用完 停止
碎碎念:(By the way CSDN上对于Python 字典的详解真的少 而且很不全面 过几天有空了自己更一个 Source来自书:《Fundamentals of Python - Kenneth A.Lambert》
number = 2021
number_initial = 0
cardStore={"1":number}
while True:
for letter in str(number_initial):
# print(letter)
if letter == "1":
# print(cardStore["1"])
number -= 1
cardStore["1"] = number
if int(cardStore["1"]) == 0:
print(number_initial)
break
number_initial+=1
Tip:判断最后的答案并且终止循环 一定要注意顺序
致谢川川大佬 这是他的代码 写的很好 分享给各位
num=0
for i in range(1,10000):
num+=str(i).count("1")
if num == 2021:
print(i)
break
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)