代码4:掷骰子和九九乘法表

论坛 期权论坛 期权     
小码哥爱编程   2019-7-20 18:52   3409   0
上一篇的三色球数量问题,我们第一次用到了for循环,不过只是用的单重循环,今天我们将开始接触双重嵌套循环。


题目1:
有红黑两个骰子,每个骰子上都有6个面,上面的数字分别为1,2,3,4,5,6。请问将这两个骰子掷出后数字之和是偶数的有多少种情况?(1+3和3+1算两种情况)


答案:
18种,组成偶数有两种情况:
1、偶数+偶数=偶数,每个骰子有3个偶数,组合就是3*3=9;
2、奇数+奇数=偶数,每个骰子有3个奇数,组合就是3*3=9。


编程思路:
通过双重循环来进行枚举,每层循环分别代表一个骰子,然后通过交叉枚举逐个找出符合条件的组合。

实现代码:


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

代码讲解:
本段代码最难理解的部分就是双重循环,我做了一个3*4的双重循环对照表,可以帮助理解双重循环的执行过程,count=R+B这条语句共被执行了12次,执行情况参见下图最右侧的一列。



补充知识:
取模运算符(%)两边都为正时,等同于数学上的取余数,其他情况可以参照网盘中本篇源代码里面的详解。

题目2
通过双重循环打印出下图的九九乘法表。


编程思路:
首先print函数只能逐行输出(在它的括号中将“end='  '”作为最后一个参数时输出结束后就不会换行),那么我们可以通过第一重循环来循环行数,然后通过第二重循环来逐个输出每行中的表达式。另外,可以注意到,第二重循环每轮循环要输出的表达式个数正好和行号(即第一重循环的循环变量值)相等。

实现代码:


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

练习题:
1、用*打印直角三角形
2、用*打印等腰三角形

参考代码:


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

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


搭建编程环境参考文章:

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


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

代码3:三色球数量问题

写在最后:

双重循环掌握起来还是有点困难,特别是输出九九乘法表,理解了,但是应该没有完全掌握,后面还是需要多练习慢慢掌握。
个人认为,孩子可以先跟着例子去尝试练习。如果一开始就想着如何系统化的学习,对于没有基础的孩子来说头必定会很大,自然也容易失去兴趣。





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

本版积分规则

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

下载期权论坛手机APP