java常见练习题之恶心的三角形

用代码实现等腰三角形并且从1-9不断来回循环

如图:

在这里插入图片描述

首先思考如何出现等腰三角的图形,分成两步实现

第一步,填补空白

示例:

//定9行(此为注解)
		for (int i = 1; i <= 9; i++) {
			//i=1,空=8(此为注解)
			//i=2,空=7(此为注解)
			//i=3,空=6(此为注解)
			for (int j = 1; j <= 9 - i; j++) {
				System.out.print(" ");
			}

这样就实现了将等腰三角形之前的空白填满

第二步,填充内容,暂时先将1-9的数字用*来表示的话如下

示例:

			//紧接内层for循环继续往下写(此为注解)
			//i=1, =1(此为注解)
			//i=2, *=3(此为注解)
			//i=3, *= 5(此为注解)
			for (int j = 1; j <= 2 * i - 1; j++) {
				System.out.print(sum);
				}

记得要在外层for循环加System.out.println();换行

这样就完成了等腰三角形的打印,结果如下:

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

接下来思考如何将里面的*用1-9来代替
我们发现1-9是有规律的增加,我们要解决的问题就是如何将到9后的下一位继续从1开始

解决方案:

设一个变量int sum = 1;
使其在每执行一次for循环后自增1,那么我们只需要在for循环里写上一个sum++;即可

之后我们要解决的问题就是如何将到9后的下一位继续从1开始

设置一个简单的判断语句,使其判断sum = 10的时候减去9得到1即可

示例:

if (sum == 10) {
	sum = sum - 9;
	}

最终实现的代码即为:

public class Demo {
	public static void main(String[] args) {
		int sum = 1;
		//定9行(此为注解)
		for (int i = 1; i <= 9; i++) {
			//i=1,空=8(此为注解)
			//i=2,空=7(此为注解)
			//i=3,空=6(此为注解)
			for (int j = 1; j <= 9 - i; j++) {
				System.out.print(" ");
			}
			//i=1, =1(此为注解)
			//i=2, =2,3,4(此为注解)
			//i=3, = 5,6,7,8,9(此为注解)
			for (int j = 1; j <= 2 * i - 1; j++) {
				System.out.print(sum);
				sum++;
				if (sum == 10) {
					sum = sum - 9;
				}
			}
			System.out.println();
		}
	}
}

得到的结果为:

        1
       234
      56789
     1234567
    891234567
   89123456789
  1234567891234
 567891234567891
23456789123456789

完成,每步分开分析的话会发现恶心的三角形一点也不恶心了,很简单解决问题哦

猜你喜欢

转载自blog.csdn.net/sztdbk/article/details/83183459