JAVA中*星号构成图形类题型分析

##1.打印如下图形
image.png

  • 实现代码
package bilibilitext;
public class TU1 {
	public static void main(String[] args) {
          //行数j从1开始进行循环,因为每行的元素都和行数相关,所以将行数定义为外循环
		for(int j = 1;j <= 4;j++){
          //将行里面的星号元素个数i定义为j循环里面的内循环,注意最大个数的控制
			for(int i = 1;i <= 10;i++){
				System.out.print("*");
		}
            //注意换行输出的语句放置位置
		System.out.println();
		}		
}
}

##2.打印如下图形
image.png

  • 分析
    //重点找每行空格a的数量和行数j的关系
    //分析有如下关系
    // 行数j --------每行空个数a
    ----1 ------------------ 5
    — 2 ------------------ 4
    — 3 ------------------ 3
    — 4 ------------------ 2
    // 得出规律 a =6-j
  • 实现代码
package bilibilitext;
public class TU2 {
	public static void main(String[] args) {
		for (int j = 1; j <= 4; j++) {
            //在图1的代码基础上新增空格的数量循环,因为空格和星号都是每行的元素,跟着行数的变化而变化,所以for(空格)循环和for(星号)循环属于并列关系
			for (int a = 1; a <= 6 - j; a++) {
				System.out.print(" ");
			}
			for (int i = 1; i <= 10; i++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

##3.打印如下图形
image.png

  • 分析
    //重点找每行空格a的数量,每行的数量i和行数j的关系
    //有如下关系
    //行数j --------每行空个数a -------- 每行星号数i
    ----1 ------------------ 3 --------------------- 1
    ----2 ------------------ 2 --------------------- 3
    ----3 ------------------ 1 --------------------- 5
    ----4 ------------------ 0 --------------------- 7
    //得出规律 a =4-j i=2
    j-1
  • 实现代码
package bilibilitext;
public class TU3 {	
	public static void main(String[] args) {
		for (int j = 1; j <= 4; j++) {
			for (int a = 1; a <= 4-j; a++) {
				System.out.print(" ");
			}
            //在图形2代码的基础上,只有星号i的数量进行了变化,所以重点找到i的数量与行数j的数量之间的关系即可
			for (int i = 1; i <= 2*j-1; i++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

##4.打印如下图形

  • 分析
    //重点1:找每行左侧空格a的数量,每行的数量i和行数j的关系
    //重点2:每行
    的数量i,以及中间的空格可以由if条件语句确定
    //有如下关系
    //行数j --------每行空个数a --------每行星号数i
    ----1 ------------------ 3 --------------------- 1
    ----2 ------------------ 2 --------------------- 3
    ---- 3------------------ 1 --------------------- 5
    ----4 ------------------ 0 --------------------- 7
    //得出规律 a =4-j i=2*j-1
  • 实现代码
package bilibilitext;
public class TU4 {	
	public static void main(String[] args) {
		for (int j = 1; j <= 4; j++) {
			for (int a = 1; a <= 4-j; a++) {
				System.out.print(" ");
			}
			for (int i = 1; i <= 2*j-1; i++) {
                //重点:同样延续图形3的代码,将两端星号之间的空格用if语句进行条件表示(即用if条件语句直接固定两端*号位置)
				if(i == 1 || i == 2*j-1){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}				
			}
			System.out.println();
		}
	}
}

##5.打印如下图形
image.png

  • 分析
    //重点1:找每行左侧空格a的数量,每行的数量i和行数j的关系
    //重点2:每行
    的数量i,以及中间的空格可以由if条件语句确定
    //重点3:将此图形分为上下两个三角形

  • 上面的三角形有如下关系
    //行数j --------每行空个数a --------每行星号数i
    ----1 ------------------ 3 --------------------- 1
    ----2 ------------------ 2 --------------------- 3
    ----3 ------------------ 1 --------------------- 5
    ----4 ------------------ 0 --------------------- 7
    //得出规律 a =4-j i=2*j-1

  • 下面的三角形有如下关系
    //行数j --------每行空个数a --------每行星号数i
    ----1 ------------------ 1 --------------------- 5
    ----2 ------------------ 2 --------------------- 3
    ----3 ------------------ 3 --------------------- 1
    //得出规律 a =4-j i=7-2*j

  • 实现代码

package bilibilitext;
public class TU5 {	
	public static void main(String[] args) {		
	   //上面的三角形
		for (int j = 1; j <= 4; j++) {
			for (int a = 1; a <= 4-j; a++) {
				System.out.print(" ");
			}
			for (int i = 1; i <= 2*j-1; i++) {
				if(i == 1 || i == 2*j-1){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}				
			}
			System.out.println();
		}
		//下面的三角形
		for (int j = 1; j <= 3; j++) {
			for (int a = 1; a <= j; a++) {
				System.out.print(" ");
			}
			for (int i = 1; i <=7-2*j; i++) {
                  //找到星号数量i与行数j的数量关系
				if(i == 1 || i == 7-2*j){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}				
			}
			System.out.println();
		}
	}
}

总结:

  • 图形5,图形4,图形3,图形2都是延续图形1代码进行分析加入空格,还有其他实现方法
  • 重点:图形4,图形5星号中间的空格都是假设空格都为星号,然后用if条件语句进行筛选,并得出最后图形
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值