打印大X

题目描述

小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度。为了便于比对空格,所有的空白位置都以句点符来代替。
要求输入两个整数m n,表示笔的宽度,X的高度。用空格分开(0<m<n, 3<n<1000, 保证n是奇数)
要求输出一个大X

解决方法

import java.util.Scanner;

public class C_9 {
	
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int m = in.nextInt();
		int n = in.nextInt();
		String s,s1,s2,s3,str1 = "",str2 = "";
		int i,j,k,l,t;
		for(i = 0;i<(n+1)/2;i++) {
			s = "";s1 = "";s2 = "";s3 = "";
			for(j = 0;j<i;j++) {
				s1 = s1 + ".";//两侧的.
			}
			t = n-1-m-2*j;
			for(l = 0;l<t;l++) {
				s2 = s2 + ".";//中间的.
			}
			
			if(t>0) {
				for(k = 0;k<m;k++) {
					s3 = s3 + "*";
				}
				s = s1 + s3 +s2 + s3 + s1;//中间有.的行
			}
			else {
				for(k = 0;k<m+n-1-2*i;k++) {
					s3 = s3 + "*";
				}
				s = s1 + s3 + s1;//中间没有.的那几行
			}
			str2 = "\n" + s + str2;//后半部分的图形
			str1 = str1 + s + "\n";//千般部分的图形
		}
		System.out.println(str1+str2.substring(m+n+1, str2.length()));
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值