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 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰 ...
随机推荐
- SpringBoot读取配置文件三步走
1首先新建application.properties文件 cn.qdl.demo.url=http://localhost:8080 2写一个类包上面的配置文件,类名随便取 public class ...
- spring junit--基础配置
spring官方文档总提示要进行SpringJunit测试必须先配置两个信息: 1.使用Spring IOC功能配置 2.配置正确的JDBC或ORM框架连接数据库 下面进行spring3和hibern ...
- ASP.NET Core Blazor Webassembly 之 组件
关于组件 现在前端几大轮子全面组件化.组件让我们可以对常用的功能进行封装,以便复用.组件这东西对于搞.NET的同学其实并不陌生,以前ASP.NET WebForm的用户控件其实也是一种组件.它封装ht ...
- 对 eval 命令的理解
eval 格式:eval [argument...] 可以二次迭代参数中的引用变量,然后将参数作为命令,在shell中执行 如果是多个参数,那么变量替换之后必须符合某个命令的格式,否则eval会报错& ...
- Maven快速入门(一)Maven介绍及环境搭建
做开发的程序员都知道,在系统开发需要各自各样的框架.工具.其中有一种工具不管你是初级程序员还是高级程序员都必须熟练掌握的,那就是项目管理工具(maven.ant.gradle).接下来就总结Maven ...
- 第三篇-用Flutter手撸一个抖音国内版,看看有多炫
前言 前一篇已经开发了大部分框架,包含视频上下滑动播放,这次将上次未完成的数据显示友好显示,以及底部音乐走马灯特效,另外优化了加载数据的bug,在dart语言里 & 会自动变成& 另 ...
- [PHP学习教程 - 网络]003.获得当前访问的页面URL(Current Request URL)
引言:获取当前请求的URL路径,自动判断协议(HTTP or HTTPS). 一句话的事情,下面直接上高清无MSK的精妙代码! 功能函数 获得当前请求的页面路径(URL)地址 语法:$url = ge ...
- 设计MyTime类 代码参考
#include <iostream> #include <cstdio> using namespace std; class MyTime { private: int h ...
- CORS漏洞利用检测和利用方式
CORS全称Cross-Origin Resource Sharing, 跨域资源共享,是HTML5的一个新特性,已被所有浏览器支持,不同于古老的jsonp只能get请求. 检测方式: 1.curl访 ...
- Bitwarden_rs搭建
最近LastPass网络极其不稳定,正好闲下来找到了Bitwarden_rs这个替代品,感觉不错,分享记录下部署过程. 一.Docker方式部署 #获取镜像 docker pull bitwarden ...