• java实现第六届蓝桥杯打印大X


    打印大X
    打印大X
    
    小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度。
    为了便于比对空格,所有的空白位置都以句点符来代替。
    
    要求输入两个整数m n,表示笔的宽度,X的高度。用空格分开(0<m<n, 3<n<1000, 保证n是奇数)
    要求输出一个大X
    
    例如,用户输入:
    9
    程序应该输出:
    ***.....***
    .***...***.
    ..***.***..
    ...*****...
    ....***....
    ...*****...
    ..***.***..
    .***...***.
    ***.....***
    
    (如有对齐问题,参看【图1.jpg】)
    
    再例如,用户输入:
    21
    程序应该输出
    ****................****
    .****..............****.
    ..****............****..
    ...****..........****...
    ....****........****....
    .....****......****.....
    ......****....****......
    .......****..****.......
    ........********........
    .........******.........
    ..........****..........
    .........******.........
    ........********........
    .......****..****.......
    ......****....****......
    .....****......****.....
    ....****........****....
    ...****..........****...
    ..****............****..
    .****..............****.
    ****................****
    
    (如有对齐问题,参看【图2.jpg】)
    
    
    资源约定:
    峰值内存消耗(含虚拟机) < 256M
    CPU消耗  < 1000ms
    
    
    请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。
    
    所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
    注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
    注意:主类的名字必须是:Main,否则按无效代码处理。
    
    package 第一次线下模拟;
    
    import java.util.Scanner;
    
    public class Demo9打印X {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int n = sc.nextInt();
    		int m = sc.nextInt();
    		sc.close();
    		int len = m / 2 * 2 + n;
    		String[] nums = new String[m / 2];
    		int i=0;
    		for (  i = 0; i < m / 2 && i * 2 + n * 2 <= len; i++) {
    			String s = "";
    			for (int j = 0; j < i; j++) {
    				s += ".";
    			}
    			for (int j = 0; j < n; j++) {
    				s += "*";
    			}
    			StringBuilder sb = new StringBuilder(s);
    			for (int j = 0; j < len - 2 * n - 2 * i; j++) {
    				s += ".";
    			}
    			s=s+sb.reverse().toString();
    //			for (int j = 0; j < n; j++) {
    //				s += "*";
    //			}
    //			for (int j = 0; j < i; j++) {
    //				s += ".";
    //			}
    			nums[i]=s;
    			System.out.println(s);
    		}
    		for (; i<m/2; i++) {
    			String s="";
    			for (int j = 0; j <i; j++) {
    				s+=".";
    			}
    			String ss =s;
    			for (int j = 0; j <len-2*i; j++) {
    				s+="*";
    			}
    			
    			s+=ss;
    			nums[i]=s;
    			System.out.println(s);
    		}
    		String s="";
    		for (int j = 0; j <i; j++) {
    			s+=".";
    		}
    		String ss=s+"";
    		for (int j = 0; j < n; j++) {
    			s+="*";
    		}
    		s+=ss;
    		System.out.println(s);
    		for (int j = nums.length-1; j >=0; j--) {
    			System.out.println(nums[j]);
    		}
    	}
    }
    
    
    import java.util.Scanner;
    
    public class Main {
        
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            int m = in.nextInt();
            int n = in.nextInt();
            char[][] A = new char[n][n + m - 1];
            for(int i = 0;i < n;i++)
                for(int j = 0;j < n + m - 1;j++)
                    A[i][j] = '.';
            int mid = n / 2;
            for(int i = 0;i <= mid;i++) {
                int startL = i, endL = i + m - 1;      //X左边星号开始于截止纵坐标
                int startR = n  - 1 - i, endR = n + m - 2 - i; //X右边星号起止纵坐标
                for(int j = startL;j <= endL;j++) {
                    A[i][j] = '*';
                    A[n - 1 - i][j] = '*';
                }
                for(int j = startR;j <= endR;j++) {
                    A[i][j] = '*';
                    A[n - 1 - i][j] = '*';
                }
            }
            //打印题意结果
            for(int i = 0;i < n;i++) {
                for(int j = 0;j < n + m - 1;j++)
                    System.out.print(A[i][j]);
                System.out.println();
            }
        }
    }
    
  • 相关阅读:
    Redis学习笔记1:Redis介绍
    《设计模式之禅》读书笔记1:单一职责原则
    如何在Word中设置其中一页为横向(Office 2013)
    Linux CentOS7 升级内核的方法
    升级openSSH
    Windows服务器杀掉端口的方法
    Linux 安装zlib
    Linux升级openssl
    Linux下安装Perl 5
    Linux 安装gcc
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12947657.html
Copyright © 2020-2023  润新知