您的位置:首页 > 编程语言 > Java开发

java 利用*号打印三角形

2016-02-27 02:59 267 查看
利用*号打印如下形式的图形

    * 

   * * 

  * * * 

 * * * * 

* * * * *
 

观察这个图形的特点可以初步知道:

1,对应第几行就有几个*号;

2,每个*号之间都有空格;

3,另外为了保持特定形状,*号之前也有特定数量的空格

为了做到这一点,我们可以逐步分解步骤:

1.先写一个循环控制行数,循环次数和要打印的最后一行*号个数一致

2.为了简单起见,可以认为每个*号后面都有一个空格,这样第一行就只有一个*号+“ ”,第二行则有两个*号+“ ”,以此类推

3.为了特定形状,每行第一个*号之前都有特定数量的“ ”,以上图为例第一行*号之前有4个“ ”,第二行第一个*号之前就只有3个“ ”,以此类推,最后一行没有

这样理解后,打印任意个*号组成的三角形代码也就差不多出来了

/**
* 用任意个*打印三角形,n必须为正整数
*
* @param n
*
*/
public static void printTriangle(int n) throws IllegalArgumentException {
if (n < 0) {
throw new IllegalArgumentException("不合法的参数" + n);
}
// 控制行数
for (int i = 1; i <= n; i++) {
// 打印每行第一个*之前的空格,第i行对应有n-i个
for (int k = n; k > i; k--) {
System.out.print(" ");
}
// 打印对应每行的"*"+空格,对应第i行打印i次
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
// 换行
System.out.println("");
}
}
 这是printTriangle(20);的结果:




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息