java 利用*号打印三角形

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zjluocisoftstone/article/details/50753676

利用*号打印如下形式的图形

    * 
   * * 
  * * * 
 * * * * 
* * * * *
 

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

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);的结果:




猜你喜欢

转载自blog.csdn.net/zjluocisoftstone/article/details/50753676
今日推荐