十一界蓝桥杯青少年Python中/高级组省赛试题详解——编程题4密码表/5节气表/6最近距离
建立2个密码表,把输入的字符串转为单个字母的列表,如果不是空格就第一次加密变为2个字符,然后分别对2个字符进行第二次加密;如果是空格只进行第二次加密。程序代码如下:
运行结果:
注意:一行最后一个字符是转义符,表示一行没结束,不可以在后面加注释。
编写一个顺序的节气表,元素是由月日两个整数和节气字符串组成,2021年月份加12。把输入转为年月日三个整数,2021年月份加12。用月日两个整数从节气表倒序查找节气。
程序代码:
运行结果:
这个看起来复杂,其实简单,只不过是不同组合的统计值与一个值的差距问题。问题主要是如何获得这些不同组合的统计值。n物品,可以有1到n种数量的组合,每一种组合的统计值都是个列表,求出其最小差距,再比较所有的组合的最小差距,得到全局的最小差距。当一种数量的所有值到不小于容量时,就无需统计更多的数量组合了。
程序代码:
运行结果:
从另一个角度看,这也是个路径问题。从1到n个物品都作为根节点(开始节点,距离负容量)的子节点,然后子节点的兄弟节点是该节点的子节点,如此类推,达到或超过容量或物品用完为止。
程序代码:
用树的方法,计算量要少很多。

添加 家长论坛微信
全部 0条评论