用Python解决超大型 LED 显示屏(湖南省第十届大学生计算机程序设计竞赛题)一(题目分析(字典dict))

这个题目我是用Python解出来的,如果大家想用其他语言解决也可以看一看我得分析思路,和解决思路,代码语言不一样但解决的方法是相通的。
首先让我们先来看看题目
在这里插入图片描述
首先要解决的一个问题是如何让每个比分对应相应的电量,如图0分对应每秒消耗6度电,1分对应每秒消耗2度电,等等
这里我解决使用的是Python中的字典类型(dict)形成键值对形式,这样便可以通过得分(键)来得到消耗的电量(值),设置如下
在这里插入图片描述
但问题又来啦,题目里说每个人有三个块得分板,那也就是意味着每个人的分数可能会达到三位数,不管现实中有没可能但题目中提到了那我们一定要考虑到,那我现在的键值对对于两位数和三位数的得分完全匹配不了,那我继续往里面加键值对吗?理论上可以但得加多少个键值对呀,假设一个得分为一个三位数,那每位上有10个数字可能(0-9)10的3次方1000个键值对,不可行,这等你放进去,截止时间也到了,那我们怎么办呢,我们可以使用字符串分割的方式来进行,比如你目前得分为23,现在键值对中无对应的键便无法匹配但你可以把23分成2和3呀,‘2’,‘3’在目前字典中存在的,23的值便为dic[‘2’]+dic[‘3’]=5+5=10这样便可以解决了,至于为什么字典中最后一个键值对为’’:0,是因为每次我每次都把目前分数当做三位数来处理每次都进行三次分割,如果目前分数为一位数那分割出来的其中会有两个为空,但进行字典查询时dic[x]x不能为空,所以我在字典中加入’’:0,这样便不会报错,并且对结果无影响
就先写到这吧,有时间的话就再写下去,这个分析确实挺多的,如果这个能帮助到大家的话也请大家点个赞支持一下,有写的不好地方也请多多包涵

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值