蓝桥杯错误解法(个人错题本)

目录

1.卡片(1443)

错解:

改进方法:

2.外卖店优先(184)

错误部分:


1.卡片(1443)

错解:

a = [2021 for i in range(10)] #存储10种卡片的数量
cnt = 1
#遍历各位数
while a[1]>0:
    while cnt>0:
        x= cnt%10
        a[x] = a[x]-1
        cnt //=10
    cnt +=1
print(cnt-1)

只会输出0 

 原因分析:

while循环中出来了的cnt=0,再加上1后cnt为,1,经第二层while循环又会变为0,最后输出cnt = 1

#cnt的值始终在变化,出循环后cnt的值不再是进循环的值

改进方法:

1.利用函数局部变量的性质(函数中改变的列表,函数外的列表也改变) 

a = [2021 for i in range(10)]
cnt = 1
#遍历各位数
def check(x):
    #依次读取各位数的数值
    while x>0:
        n = x%10
        if a[n]>0:
            a[n] -=1
            x //=10
        else:
            return 0    #退出循环
    return 1            #输出True
cnt = 1
while check(cnt):
    cnt +=1
print(cnt -1)          #注意减一

2. 利用excel:

先估计可能可以拼出3000多个数,excel输入1~3500,可利用excel的功能查询1的使用次数(1使用次数最多,优先用完)

2.外卖店优先(184)

错误部分:

存储时将列表生成器敲成了生成器对象(generator object)

相关知识学于【Python基础】day10——生成器_黑领灵灵妖的博客-CSDN博客列表生成器(式)示例一:a=[x for x in range(30)] #这行代码就是列表生成器,执行顺序就是先执行后面的for循环,然后执行前面的xprint(a)执行结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]Process finished with exit...https://blog.csdn.net/qq_44714603/article/details/106969804

错解:

n,m,T = map(int,input().split())
a = []
priority = []

for i in range(m):
    a.append(int(j) for j in input().split())   #append()内未加[],生成生成器

print(a)

 

 绿色字体为输入,白色为输出

 

正解: 

n,m,T = map(int,input().split())
a = []
priority = []

for i in range(m):
    a.append([int(j) for j in input().split()])

print(a)   #检验a

 

 绿色字体为输入,白色为输出

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值