2024年4月14日发(作者:)
第1章 变幻多姿的图表
图表简洁直观,在各种场合得到广泛应用,给人以很强的视觉冲击,经常让人难以忘
怀。我们的程序中如果能够灵活地应用图表,一定能给我们的程序增色不少。本章将带你
进入变换多姿的图表世界,体会图表编程带来的乐趣。
1.1 金字塔图案
1.问题描述
打印出金字塔图案,如图
1.1
所示。
2.问题分析
这个问题是一个很经典的循环应用的题目。我们都知道,打印输出的时候,都是从最
左端输出,而这里,第一个星号是在中间。这实际是因为星号之前有很多空格。当我们使
用问号来表示空格,实际的输出效果应该是图
1.2
的形式。
图1.1 金字塔
图1.2 金字塔的分析图
从图
1.2
分析,我们就可以发现这个题目的奥秘了。
(
1
)确定程序框架
从图
1.2
中,我们可以发现,一共需要打印
5
行,而每一行都是打印几个空格,然后
再打印几个星号。这样我们就可以写出程序框架了。程序框架代码如下:
public class Ch1_1
{
public static void main(String[] args)
{
**************
for(i=1;i<=5;i++) //循环5次,打印5行
{
Java趣味编程100例
//打印若干个空格
//打印若干个星号
}
}
}
由于我们这里明确知道打印的行数,所以我们使用
for
循环来实现。下面我们就需要
考虑如何打印每行的星号。
(
2
)寻找空格和星号的规律
从图
1.2
中,我们可以发现:第
1
行的空格为
4
个,第
2
行是
3
个,第
3
行是
2
个,……,
每行依次递减,直至最后一行空格数为
0
;而星号数目是第
1
行是
1
个,第
2
行是
3
,第
3
行是
5
,……,每行依次递增
2
,直至最后一行星号数为
9
。总结数据,我们可以得到表
1.1
所示的规律。
表1.1 空格和星号的规律
行数
1
2
3
4
5
规律
4
3
2
1
0
依次递减
1
空格数
5–1
5–2
5–3
5–4
5–5
5–
行数
1
3
5
7
9
依次递增
2
星号数
1
*
2–1
2
*
2–1
3
*
2–1
4
*
2–1
5
*
2–1
行数
*
2–1
从表
1.1
中,我们不难发现行数和空格数、星号数之间有一种很有趣的联系。根据这
个联系,我们就可以考虑完善我们上面的程序了。
(
3
)打印空格数
由于每行空格数有着“
5–
行数”的规律。所以在第
i
行的时候,空格数就为
5–i
。所以
我们只要把
5–i
个空格打印出来即可。对应代码如下:
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++) //根据外层行号,输出星号左边空格
(" ");
}
虽然每行的空格数不同,但是对于特定的行,其空格数是固定的,所以循环打印的次
数是确定的。所以这里同样适用了
for
循环。
(
4
)打印星号数
由于每行星号数有着“行数
*
2–1
”的规律。所以在第
i
行的时候,星号数就为
2
*
i–1
。
所以我们只要把
2
*
i–1
个星号打印出来即可。对应代码如下:
for(i=1;i<=5;i++)
{
for(k=1;k<=2
*
i-1;k++) //根据外层行号,输出星号个数
("
*
");
}
(
5
)完整程序
现在我们就需要把刚才的程序进行组合,构成我们的完整程序。
·2·
发布者:admin,转转请注明出处:http://www.yc00.com/news/1713040919a2171007.html
评论列表(0条)