6-Java-C(打印大X)
题目描述:
小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度。
为了便于比对空格,所有的空白位置都以句点符来代替。
要求输入两个整数m n,表示笔的宽度,X的高度。用空格分开(0<m<n, 3<n<1000, 保证n是奇数)
要求输出一个大X
例如,用户输入:
3 9
程序应该输出:
***.....***
.***...***.
..***.***..
...*****...
....***....
...*****...
..***.***..
.***...***.
***.....***
(如有对齐问题,参看【图1.jpg】)
再例如,用户输入:
4 21
程序应该输出
****................****
.****..............****.
..****............****..
...****..........****...
....****........****....
.....****......****.....
......****....****......
.......****..****.......
........********........
.........******.........
..........****..........
.........******.........
........********........
.......****..****.......
......****....****......
.....****......****.....
....****........****....
...****..........****...
..****............****..
.****..............****.
****................****
(如有对齐问题,参看【图2.jpg】)
资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。
正确算法:
import java.util.Scanner;
/** 解析
* 此题我是分为上下、中间两个部分算的,先算好中间带小数点的有几行,然后打印,接着
* 打印中间行。
*
*/
public class 打印大X { public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (input.hasNext()) {
int count = 0;
int m = input.nextInt();
int n = input.nextInt();
//求出中间部分有小数点的图形有多少行
count = m % 2 == 0 ? (n - m - 1) / 2 : (n - m) / 2;
String str[] = new String[count + (m / 2) + 1];
for (int i = 0; i < count; i++) { str[i] = ""; for (int j = 0; j < i; j++) {
str[i] += ".";
} for (int j = 0; j < m; j++) {
str[i] += "*";
}
//中间
if (m % 2 == 0) {
for (int j = 0; j < (count - 1 - i) * 2 + 2; j++) {
str[i] += ".";
}
} else {
for (int j = 0; j < (count - 1 - i) * 2 + 1; j++) {
str[i] += ".";
}
}
for (int j = 0; j < m; j++) {
str[i] += "*";
}
for (int j = 0; j < i; j++) {
str[i] += ".";
}
} //中间部分 int res = (count + (m / 2)) * 2 + m;//算出图形的宽度
int index = count; for (int i = 0; i < (m / 2) + 1; i++) {
str[index]="";
//从count开始打印前面的小数点
for (int j = 0; j < count + i; j++) {
str[index] += ".";
}
for (int j = 0; j < res - (count + i) * 2; j++) {
str[index] += "*";
}
for (int j = 0; j < count + i; j++) {
str[index] += ".";
}
index++;
}
for (int j = 0; j < str.length; j++) {
System.out.println(str[j]);
}
for (int j = str.length - 2; j >= 0; j--) {
System.out.println(str[j]);
}
} }
}
6-Java-C(打印大X)的更多相关文章
- java实现第六届蓝桥杯打印大X
打印大X 打印大X 小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度. 为了便于比对空格,所有的空白位置都以句点符来代替. 要求输入两个整数m n,表示笔的宽度,X的高度.用 ...
- Java实现第九届蓝桥杯打印大X
打印大X 题目描述 如下的程序目的是在控制台打印输出大X. 可以控制两个参数:图形的高度,以及笔宽. 用程序中的测试数据输出效果: (如果显示有问题,可以参看p1.png) 高度=15, 笔宽=3 * ...
- 【面试必备】常见Java面试题大综合
一.Java基础 1.Arrays.sort实现原理和Collections.sort实现原理答:Collections.sort方法底层会调用Arrays.sort方法,底层实现都是TimeSort ...
- Java如何打印日志
以下为<正确的打日志姿势>学习笔记. 什么时候打日志 1.程序出现问题,只能通过 debug 功能来定位问题,很大程度是日志没打好.良好的系统,通过日志就能进行问题定位. 2.if-els ...
- Java在处理大数据的时候一些小技巧
Java在处理大数据的时候一些小技巧 发布时间:2013-05-09 00:00:00 来源:中国IT实验室 作者:佚名 关键字:Java 众所周知,java在处理数据量比较大的时候,加载到内存必 ...
- java中打印变量地址
在java中打印变量的地址 这个代码是在startoverflow上看到的,跟大家分享一下. import sun.misc.Unsafe; import java.lang.reflect.Fiel ...
- paip.操作符重载的缺失 Java 的一个大缺点
paip.操作符重载的缺失 Java 的一个大缺点 #----操作符重载的作用 1.提升用户体验 操作符重载..可以让代码更加自然.... 2.轻松实现代码代码移植 例如 java代码会直接移植到 ...
- java 11-8 在大串中查找小串的案例
1.统计大串中小串出现的次数 举例: 在字符串"woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun& ...
- (转)Java线程:大总结
Java线程:大总结 Java线程是Java语言中一个非常重要的部分,Java5之前,多线程的语言支持还是比较弱的,内容也较少,写一个复杂的多线程程序是相当有挑战性的. 在Java5以后,Ja ...
随机推荐
- 自定义View分类与流程
自定义View分类与流程(进阶篇)## 转载出处: http://www.gcssloop.com/customview/CustomViewProcess/ 自定义View绘制流程函数调用链(简化版 ...
- bzoj2916
容斥原理 计蒜客比赛day2t3的简化版 总数-异色三角形 对于每个点考虑,每个点红线数量为d[i],那么以这个点为顶点的异色三角形有d[i]*(n-1-d[i]),每条红线和蓝线成一个异色三角形,一 ...
- 【141】Adobe Acrobat技巧
目录: 去除PDF的水印 待定 待定 待定 待定 待定 待定 待定 1. 批量去除PDF文件的水印 用Adobe Acrobat打开PDF文件之后,右侧选择工具>页面>水印>删除,可 ...
- asp.net mvc5 使用百度ueditor 本编辑器完整示例(三)在IIS中多个应用程序使用多个ueditor对象
最近做了一个项目,要求同一类型的多个专业应用程序(网站),但是每个应用程序都需要调用各自当中的ueditor. 步骤: 一.在vs2013中设置每个专业的asp.net mvc 应用程序. 1.配置根 ...
- 简单粗暴解决google被和谐导致google fonts无法加载的问题
原文:http://www.v2ex.com/t/118403 解决方法:fonts.googleapis.com替换为fonts.useso.com, fonts.useso.com是360安全卫士 ...
- bzoj3316: JC loves Mkk(单调队列+分数规划)
Description Input 第1行,包含三个整数.n,L,R.第2行n个数,代表a[1..n]. Output 仅1行,表示询问答案.如果答案是整数,就输出整数:否则,输出既约分数“P/Q”来 ...
- IE6 position:fixed bug hack方式
/* IE6浏览器的特有方法 */ /* 修正IE6振动bug */ * html,* html body{background-image:url(about:blank);background-a ...
- django templates模板
Django templates模板 HTML代码可以被直接硬编码在views视图代码中,虽然这样很容易看出视图是怎么工作的,但直接将HTML硬编码到视图里却并不是一个好主意. 让我们来看一下为什么: ...
- Windows软件推荐
本篇博文主要记录一些实用性的windows软件或者插件,重在积累! 工具类 1.截图软件 https://zh.snipaste.com/ Snipaste 是一个简单但强大的截图工具,也可以让你将截 ...
- 牛客小白月赛5-J-时间(time) (简单模拟)
题目描述 Apojacsleam是一个喜欢特殊时刻的人. 他定义了一个时刻,若电子表显示ab:ba(24小时制),则该时刻为“回文时刻”(可以有前导零).例如00:00就是回文时刻. 给定一个时刻,求 ...