zoukankan      html  css  js  c++  java
  • Java实现第九届蓝桥杯打印大X

    打印大X
    题目描述
    如下的程序目的是在控制台打印输出大X。
    可以控制两个参数:图形的高度,以及笔宽。
    
    用程序中的测试数据输出效果:
    (如果显示有问题,可以参看p1.png)
    
    高度=15, 笔宽=3
    ***           ***
     ***         ***
      ***       ***
       ***     ***
        ***   ***
         *** ***
          *****
           ***
          *****
         *** ***
        ***   ***
       ***     ***
      ***       ***
     ***         ***
    ***           ***
    高度=8, 笔宽=5
    *****  *****
     **********
      ********
       ******
       ******
      ********
     **********
    *****  *****
    
    请仔细分析程序流程,填写缺失的代码。
    

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

    首先,看看没有这一行执行是什么样子

    在这里插入图片描述
    证明,填写的地方就是交叉的地方,并且是打印*的地方,只有一行

    q永远是大的,p永远是小的
    当向中间靠拢的时候他们的差是比较小的

    		  int a1 = 0;
              int a2 = h - 1;
              int p = Math.min(a1,a2);
              int q = Math.max(a1+w,a2+w);
    

    既然是代码填空题,想不明白的时候多试试,结果就出来了
    好记性不如烂笔头,尝试才能出结果,空想就真的空了
    下面附上整体代码

    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--;
    		}
    	}
    }
    
    
  • 相关阅读:
    win10 uwp 弹起键盘不隐藏界面元素
    win10 uwp 存放网络图片到本地
    win10 uwp 存放网络图片到本地
    sublime Text 正则替换
    sublime Text 正则替换
    win10 uwp 绘图 Line 控件使用
    win10 uwp 绘图 Line 控件使用
    AJAX 是什么?
    什么是 PHP SimpleXML?
    PHP XML DOM:DOM 是什么?
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13077791.html
Copyright © 2011-2022 走看看