zoukankan      html  css  js  c++  java
  • 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();
            }
        }
    }
    
  • 相关阅读:
    再来五道剑指offer题目
    高强度学习训练第十天总结:Class文件
    windows linux 子系统及windows terminal的使用。
    从植物大战僵尸开始一步一步带你入门逆向工程,
    高强度学习训练第九天总结:5道剑指offer的题目
    高强度学习训练第八天总结:MySQL的一些优化
    JVM的一些工具的简要使用
    手把手教你使用Java实现一个神经网络
    指定路径创建文件,并写入数据
    c#创建windows服务(代码方式安装、启动、停止、卸载服务)
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12947656.html
Copyright © 2011-2022 走看看