蓝桥杯-第六届省赛第九题

题目

打印大X

小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度。 为了便于比对空格,所有的空白位置都以句点符来代替。

要求输入两个整数m n,表示笔的宽度,X的高度。用空格分开(0<m<n, 3<n<1000, 保证n是奇数) 要求输出一个大X

例如,用户输入: 3 9 程序应该输出:
在这里插入图片描述
再例如,用户输入: 4 21 程序应该输出
在这里插入图片描述

资源约定: 峰值内存消耗(含虚拟机) < 256M CPU消耗 < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。 注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。

过程

import java.util.Scanner;

public class action9 {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int m=sc.nextInt();
		int n=sc.nextInt();
		int lie=m+n-1;
		for (int i = 0; i <=n/2; i++) {//把X分成上下两部分
			for (int j =1; j <=lie; j++) {
				if (j>i&&j<=i+m) {//前面的*号
					System.out.print("*");
				}else if (j>lie-m-i&&j<=lie-i) {//输出后面的*号
					System.out.print("*");
				}else {
					System.out.print(".");
				}
			}
			System.out.println();
		}
		for (int i =n/2+1; i <n; i++) {//跟上面相反,输出的是下半部分
			for (int j =lie;j>0;j--) {
				if (j>i&&j<=i+m) {
					System.out.print("*");
				}else if (j>lie-m-i&&j<=lie-i) {
					System.out.print("*");
				}else {
					System.out.print(".");
				}
			}
			System.out.println();
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_44561488/article/details/87716688