关于阶梯式结构打印的思考(一)
打印示例: A
B C
D E F
``````
第一步(字符的打印):
法一(用数组承载)
char arr[] = {'A','B','C','D','E','F'};
法二(字符递增)
char ch = 'A';
ch++;
如何理解呢?
其实字符的本质也是数,即ASCII码值对应的那个数,递增可以认为是对那个数递增,如何根据ASCII码表对应上字符。
以法二为例,如下:
第二步(在适当的位置换行):
法一:
因为第1,3,6,10,15······个数的时候实现换行,所以我们要写一段代码来判断是否为1,3,6,10,15,·······。接着我们观察一下1,3,6,10······不就是1,2,3,4,5,······的前n项和公式吗?
然而,要写一段代码来判断是否为1,3,6,10······我们不妨引入c来记录循环的次数(此时令循环的次数等于第X个数),这样,我们就只需要判断c是否为1,3,6,10······即可
接着,要判断c是否为1,3,6,10······的话,根据等差数列的前N项和公式,只需要判断以下情况是否存在即可:
j * j + j == c * 2;(其中j为任意正整数)
总代码如下:
法二(来自同学的灵感----“他称为矩阵打印”)
两重for循环: