代码3:三色球数量问题

论坛 期权论坛 期权     
小码哥爱编程   2019-7-14 16:21   1901   0
上篇复习:
上一篇鸡兔同笼问题的v2代码虽然可以动态输入,格式化输出,但是并未判断输入的参数是否有效(比如:鸡和兔子共100只,一共180条腿的情况是无解的)。我们可以通过循环来验证输入参数的合法性,下图的大红框里是验证输入合法性的实现代码,小红框是实际运行结果。


注:源代码可从文章底部的网盘链接下载。
代码讲解:

  • 我们将循环条件设为True,进行无限循环,直到输入的一组值符合条件后执行break跳出循环。
  • 上一篇的代码我们用循环逐个尝试兔子和鸡的数量,这里我们改成了直接使用公式来求出兔子的数量(腿数减去2倍头数,然后除以2)。

/*三色球数量问题*/


今日题目:
有红、黄、白三种球,红球和黄球共21只,黄球和白球共20只,红球和白球共19只,求三种球各多少只?


答案:
红:10;黄:11;白:9。
21+20+19=60,是三种球总数的2倍,则三种球总数是30个。红球和黄球共21个,则白球是30-21=9个,以此类推,红球是30-20=10个,黄球是30-19=11个。

编程思路:
我们可以拿某种球作为变量(比如红球),对它可能的数量区间进行循环遍历,根据当次循环中该种球的数量结合已知条件计算出其他两种球的数量,然后判断当前各球数量是否满足题目要求。另外,以前都是使用while循环,本次将使用for循环。

实现代码:


注:源代码可从文章底部的网盘链接下载。
代码讲解:
  • for后面的red变量是从0到21逐个循环的。range里面的两个参数,第一个是0,从0开始,包括0本身。第二个参数是22,表示截止到22,但是不包括22。
  • 每次循环都根据前面两个已知条件算出三种球的数量,if是用第三个已知条件来判断是否完全满足要求,如果满足要求就调用break跳出循环。

源码下载网盘:
https://pan.baidu.com/s/1JxSadsNqhXoqY18FrUJoBw
提取码:5owv


搭建编程环境参考文章:

为孩子搭个VSCode+Python的编程环境


更早例子点击下面文章:
代码1:除法余数和最小公倍数问题
代码2:鸡兔同笼问题


写在最后:

今天是给女儿题目,然后先由她自己来思考代码怎么写。总体感觉还不错,程序员思维还稍有欠缺,在她焦头烂额时提醒她先用一种球的数量来循环。
个人认为,孩子可以先跟着例子去尝试练习,。如果一开始就想着如何系统化的学习,对于没有基础的孩子来说头必定会很大,自然也容易失去兴趣。







分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:15
帖子:3
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP