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();
}
}
}
java实现第六届蓝桥杯打印大X的更多相关文章
- java实现第六届蓝桥杯打印菱形
打印菱形 给出菱形的边长,在控制台上打印出一个菱形来. 为了便于比对空格,我们把空格用句点代替. 当边长为8时,菱形为: .......* ......*.* .....*...* ....*.... ...
- Java实现第九届蓝桥杯打印大X
打印大X 题目描述 如下的程序目的是在控制台打印输出大X. 可以控制两个参数:图形的高度,以及笔宽. 用程序中的测试数据输出效果: (如果显示有问题,可以参看p1.png) 高度=15, 笔宽=3 * ...
- java实现第六届蓝桥杯居民集会
居民集会 蓝桥村的居民都生活在一条公路的边上,公路的长度为L,每户家庭的位置都用这户家庭到公路的起点的距离来计算,第i户家庭距起点的距离为di. 每年,蓝桥村都要举行一次集会.今年,由于村里的人口太多 ...
- java实现第六届蓝桥杯切开字符串
切开字符串 Pear有一个字符串,不过他希望把它切成两段. 这是一个长度为N(<=10^5)的字符串. Pear希望选择一个位置,把字符串不重复不遗漏地切成两段,长度分别是t和N-t(这两段都必 ...
- java实现第六届蓝桥杯表格计算
表格计算 某次无聊中, atm 发现了一个很老的程序.这个程序的功能类似于 Excel ,它对一个表格进行操作. 不妨设表格有 n 行,每行有 m 个格子. 每个格子的内容可以是一个正整数,也可以是一 ...
- java实现第六届蓝桥杯穿越雷区
穿越雷区 题目描述 X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废. 某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走才能 ...
- java实现第六届蓝桥杯密文搜索
密文搜索 福尔摩斯从X星收到一份资料,全部是小写字母组成. 他的助手提供了另一份资料:许多长度为8的密码列表. 福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的. 请你编写一个程序,从第一份资料 ...
- java实现第六届蓝桥杯奇怪的数列
奇怪的数列 从X星截获一份电码,是一些数字,如下: 13 1113 3113 132113 1113122113 - YY博士经彻夜研究,发现了规律: 第一行的数字随便是什么,以后每一行都是对上一行& ...
- java实现第六届蓝桥杯垒骰子
垒骰子 题目描述 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体. 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰 ...
随机推荐
- Luogu P3846 BSGS算法
https://www.luogu.com.cn/problem/P3846 BSGS这个东西是用来干啥的? 形如下面这个式子: \[a^b = c\;(mod\;p) \] 其中:p是一个质数.\( ...
- PAT 1001 A+B Format (20分) to_string()
题目 Calculate a+b and output the sum in standard format -- that is, the digits must be separated into ...
- Error: ER_BAD_FIELD_ERROR: Unknown column 'xxx' in 'where clause'
node中调用mysql模块读写时候,如果直接插入字符串: connection.query('SELECT * from users WHERE name=' + data.name , call ...
- Django路由配置之正则表达式详解
正则表达式详解 urls.py from django.conf.urls import url from . import views urlpatterns = [ url(r'^articles ...
- 简述 zookeeper 基于 Zab 协议实现选主及事务提交
Zab 协议:zookeeper 基于 Paxos 协议的改进协议 zookeeper atomic broadcast 原子广播协议. zookeeper 基于 Zab 协议实现选主及事务提交. 一 ...
- 设置TextField的响应View和toolBar
inputView 设置用于展示的响应View 类似于键盘的展示方式 inputAccessoryView 用于设置响应View上面的ToolBar 使用方式: inputView设置为响应View ...
- poj2125最小点权覆盖+找一个割集
Destroying The Graph Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8503 Accepted: 2 ...
- 欧拉函数 BZOJ2705
2705: [SDOI2012]Longge的问题 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 3154 Solved: 1968[Submit][ ...
- 【Java_集合框架Set】HashSet、LinkedHashSet、TreeSet使用区别
HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放: LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代: Tree ...
- dubbo分布式应用
dubbo介绍: dubbo是一款分布式服务框架,支持高性能和透明化的RPC远程服务调用方案,每天为2千多个服务提供大于30亿次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点以及别的公司的业务中. ...