题目描述
小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度。
为了便于比对空格,所有的空白位置都以句点符来代替。
要求输入两个整数m n,表示笔的宽度,X的高度。
输入格式
输入存在多组数据
每组测试数据输入一行,包含两个整数,用空格分开
(0<m<n, 3<n<1000, 保证n是奇数)
输出格式
要求输出一个大X
输入样例 复制
3 9
4 21
输出样例 复制
***.....***
.***...***.
..***.***..
...*****...
....***....
...*****...
..***.***..
.***...***.
***.....***
****................****
.****..............****.
..****............****..
...****..........****...
....****........****....
.....****......****.....
......****....****......
.......****..****.......
........********........
.........******.........
..........****..........
.........******.........
........********........
.......****..****.......
......****....****......
.....****......****.....
....****........****....
...****..........****...
..****............****..
.****..............****.
****................****
代码:分为四个for循环实现
import java.util.Scanner;
public class t1263 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()){
int m = scanner.nextInt();
int n = scanner.nextInt();
int sum = n-1+m;
for (int i = 0; i <=(sum-2*m)/2; i++) {
int flag = sum-2*i-2*m;
for (int j = 0; j < i; j++) {
System.out.print(".");
}
for (int j = 0; j <m ; j++) {
System.out.print("*");
}
for (int j = 0; j <flag ; j++) {
System.out.print(".");
}
for (int j = 0; j <m ; j++) {
System.out.print("*");
}
for (int j = 0; j < i; j++) {
System.out.print(".");
}
System.out.println("");
}
for (int i = (sum-2*m)/2+1; i <=(sum-m)/2 ; i++) {
for (int j = 0; j <i ; j++) {
System.out.print(".");
}
for (int j = 0; j <sum-2*i ; j++) {
System.out.print("*");
}
for (int j = 0; j <i ; j++) {
System.out.print(".");
}
System.out.println("");
}
for (int i = (sum-m)/2+1; i <=(sum-m)/2 ; i++) {
if (sum-2*i-m>=0){
for (int j = 0; j <i ; j++) {
System.out.print(".");
}
for (int j = 0; j <sum-2*i ; j++) {
System.out.print("*");
}
for (int j = 0; j <i ; j++) {
System.out.print(".");
}
}
System.out.println("");
}
int s=1;
for (int i = (sum-m)/2-1; i <n-2 ; i++) {
for (int j = 0; j <(sum-m)/2-s ; j++) {
System.out.print(".");
}
if (sum-2*((sum-m)/2-s)<=2*m){
for (int j = 0; j <sum-2*((sum-m)/2-s); j++) {
System.out.print("*");
}}else{
for (int j = 0; j <m ; j++) {
System.out.print("*");
}
for (int j = 0; j <sum-2*m-2*((sum-m)/2-s) ; j++) {
System.out.print(".");
}
for (int j = 0; j <m ; j++) {
System.out.print("*");
}
}
for (int j = 0; j <(sum-m)/2-s ; j++) {
System.out.print(".");
}
s=s+1;
System.out.println("");
}
}
}
}