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