java实现第六届蓝桥杯打印大X
JAVA 实现 蓝桥 打印 第六届
2023-09-14 08:58:11 时间
打印大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();
}
}
}
相关文章
- Java实现 LeetCode 769 最多能完成排序的块(单向遍历)
- Java实现洛谷 P1873 砍树(StreamTokenizer+IO+二分)
- Java实现 LeetCode 611 有效三角形的个数(双指针)
- Java实现 LeetCode 516 最长回文子序列
- Java实现 稀疏矩阵乘积
- Java实现 基础算法 百元买百鸡
- java实现最大镜像子串
- java实现第三届蓝桥杯方块填数
- java实现第六届蓝桥杯切开字符串
- Java实现第九届蓝桥杯耐摔指数
- java实现BellmanFord算法
- Java实现选择问题
- Java实现 洛谷 P1015 回文数(N进制回文数)
- Java实现 蓝桥杯VIP 算法训练 删除多余括号
- Java实现 蓝桥杯VIP 算法训练 校门外的树
- Java实现 蓝桥杯VIP 算法训练 阿尔法乘积
- Java实现 蓝桥杯VIP 算法训练 瓷砖铺放
- Java实现 蓝桥杯 算法提高 拿糖果
- Java实现 蓝桥杯 算法训练 寻找数组中最大值
- Java实现蓝桥杯历届试题分考场
- (Java实现)蓝桥杯Excel地址
- Java Demo示例:springboot下使用ehcache/JSR实现缓存机制
- 【腾讯阿里最全面试题】Java 线程池的实现原理,ThreadPoolExecutor关键参数解释...
- 基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - exe文件执行