APP下载

用Python解奥数“文字游戏”题

2021-08-10陈新龙

电脑报 2021年20期
关键词:文字游戏做好事个位

陈新龙

有这样一道奥数题:好事好+要做好二要做好事。请问,要做好事的值是多少?和我们用笔算更注重逻辑分析不同,编程解决这道题更多的是利用计算机运算速度快的优势,把所有可能都试一遍找到正确的解。

先考虑每个文字的范围,简单认为每个文字的值都是0-9,创建一个列表lisL1存放0-9。

分别用四个字母代替“要做好事”文字,通过循环遍历的方法提取数值然后累加判断是否能够符合题目的要求。答案为0000和1098(如图1)。

当然這种方法也是效率最低的方法,下面我们用f'm这个命令,{‘m是把整数l转换成一个字符串,:( Yld是用o补齐四位。由于“要做好事”四个字的范围在0000-9999,将个位十位百位千位分别赋值给h,s,z,v。通过函数和{‘m的方法可以大大缩短我们的代码数量,提高代码的可读性(如图2)。

这样自定义函数的方法效率也大大提高了,当然我们还可以通过引入Python内部函数来解决问题,通过位数分解加快我们的计算速度,提高解题效率。

猜你喜欢

文字游戏做好事个位
牢记方法大量练习
文字游戏馆
以《红楼梦》史华慈德译本为例探析文字游戏翻译策略
个位与十位的故事
个位与十位的故事
个位与十位的故事
做好事
帮大家做好事
“文字游戏”的基础
《霍比特人》里的文字游戏