德州点创教育:经典FOR循环打印星号三角形算法详解

有的朋友很怀念十年前 , 一道C语言等级考试的经典题目:打印星形三角形 。 没错 , 这道题当时弄晕了很多同学 。 其实做这类题 , 关键是数列与脑图分析 。 另外 , 在PYTHON大行其其道的今天 , 我们看一下 , python是如何做这道题的 。
德州点创教育:经典FOR循环打印星号三角形算法详解文章插图
这是程序运行结果
其实 , 这道题 , 玩的是数列的概念 , 数列在初中二年级就有了 , 但是光会数列还不行 , 还需要有逻辑循环 , 也就是FOR循环来辅助完成 。
【德州点创教育:经典FOR循环打印星号三角形算法详解】下面 , 上一张图 , 我们做一个分析:
我一直强调我的孩子 , 做数学题时 , 特别是做难度大的数学题时 , 一定要在脑海里画图 , 如果脑图画不出来 , 就要用纸画图 , 因为好多数学是 , 一转成二维图形 , 就简单多了 。
我们假设 , 我们要打印一个4行的*号三角形 。 所以假设 n = 4
德州点创教育:经典FOR循环打印星号三角形算法详解文章插图
python打印星形三角形
一共有n = 4 行:第n行: 我们打印 几 个+号 , 然后打印几个*号第i = 1行:31第i = 2行:23 第i = 3行:15第i = 4行:07数组总结n-i2*i-1在上面 , n代表 , 我们要打印多少行 , i 代表我们打印的每一行的行号 。
所以 , 代码如下:
n = 4for i in list(range(1,n+1)):print("+"*(n-i),end="")print("*"*(2*i-1))如图:
德州点创教育:经典FOR循环打印星号三角形算法详解文章插图
德州青少年编程算法实例
然后 , 我们再把 + 换为一个空格就可以了 。 也同样是4行代码 。
n = 4for i in list(range(1,n+1)):print(" "*(n-i),end="")print("*"*(2*i-1))
德州点创教育:经典FOR循环打印星号三角形算法详解文章插图
好了 , 如果大家想试试别的 , 只需要改变一下n的值 , 就可以了 。
最后 , 我要说的是 , 青少年在学习数学知识时 , 可以通过编程的学习 , 把数学知识通过程序图形化 , 时间长了 , 形成自己的二维脑图 , 甚至形成自己的三维脑图 。 这样坚持下来 , 人才能聪明 。
这也就是家长们常说的:
做题要动脑子 , 但是脑子如何动 , 家长没有说 。