编程语言
首页 > 编程语言> > Java实现第九届蓝桥杯打印大X

Java实现第九届蓝桥杯打印大X

作者:互联网

打印大X
题目描述
如下的程序目的是在控制台打印输出大X。
可以控制两个参数:图形的高度,以及笔宽。

用程序中的测试数据输出效果:
(如果显示有问题,可以参看p1.png)

高度=15, 笔宽=3
***           ***
 ***         ***
  ***       ***
   ***     ***
    ***   ***
     *** ***
      *****
       ***
      *****
     *** ***
    ***   ***
   ***     ***
  ***       ***
 ***         ***
***           ***
高度=8, 笔宽=5
*****  *****
 **********
  ********
   ******
   ******
  ********
 **********
*****  *****

请仔细分析程序流程,填写缺失的代码。

在这里插入图片描述
PS:
这题的思路,有图形,且确实填空代码不报错的情况。快捷的办法就是先运行一遍,结果发现缺失的代码对应每个图形的类似部位,都在中间,这样就有思路了,这样在认真读题,结合残缺图形,很容易得到答案,
我之前有发过一题,也是打印大X,个人觉得我的算法至少在代码简洁度上比这个要好得多,其他的效率什么的就不太清除了,欢迎大家找我讨论;

package Lqb;

public class Text32 {
	public static void main(String[] args) {
		f(15,3);
		f(8,5);
	}
	static void f(int h, int w){
		System.out.println(String.format("高度=%d, 笔宽=%d",h,w));
		int a1 = 0;
		int a2 = h - 1;
		
		for(int k=0; k<h; k++){
			int p = Math.min(a1,a2);
			int q = Math.max(a1+w,a2+w);
			
			for(int i=0; i<p; i++) System.out.print(" ");
			
			if(q-p<w*2){
				for(int i=0; i<q-p; i++) System.out.print("*"); ; //填空
			}
			else{
				for(int i=0; i<w; i++) System.out.print("*");
				for(int i=0; i<q-p-w*2; i++) System.out.print(" ");
				for(int i=0; i<w; i++) System.out.print("*");
			}
			System.out.println();
			a1++;
			a2--;
		}
	}
}

标签:第九届,笔宽,Java,int,代码,打印,高度,蓝桥,图形
来源: https://blog.csdn.net/a1439775520/article/details/97561320