HDU 1256 画8
来源:互联网 发布:机智自动交易软件 编辑:程序博客网 时间:2024/06/06 18:19
画8
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5356 Accepted Submission(s): 2297
Problem Description
谁画8画的好,画的快,今后就发的快,学业发达,事业发达,祝大家发,发,发.
Input
输入的第一行为一个整数N,表示后面有N组数据.
每组数据中有一个字符和一个整数,字符表示画笔,整数(>=5)表示高度.
每组数据中有一个字符和一个整数,字符表示画笔,整数(>=5)表示高度.
Output
画横线总是一个字符粗,竖线随着总高度每增长6而增加1个字符宽.当总高度从5增加到6时,其竖线宽度从1增长到2.下圈高度不小于上圈高度,但应尽量接近上圈高度,且下圈的内径呈正方形.
每画一个"8"应空一行,但最前和最后都无空行.
每画一个"8"应空一行,但最前和最后都无空行.
Sample Input
2A 7B 8
Sample Output
AAAA AAAA AA AAAA AAAA AA AA BBBBB BBBB BB BBBBB BBBB BBBB BB BBB
分析:
无脑模拟就好了,他怎么走你怎么走就OK了;但是要注意的几点是下圈的高度和‘8’的kuang宽度,之所以把这题放博客上式因为我在这题PE了很多次 :
首先呢,每个输出之间是有空行的,但最前和最后都是没有空行的;这个很好控制的;
然后就是,每个'8'的 最开始一行和中间一行还有最后一行,是没有空格的,所以不要用空格去填满它;
我们处理的时候,就是先处理哪些比较短的行,让其输出,因为其输出格式是一样的;输出最短的行的时候还要考虑其有多少个字符串需要输出,因为题目中有说过要求的是下圈的圈圈是个正方形,那么我们只要求出下圈的高就好了,并且下圈是尽可能接近上圈的 但是(下圈>=上圈)我们只要用所给长度 (len-3(除了上下圈的无关行))/2 得到的就是上圈的高度,那么下圈的高度自然也是知道了,所以上圈下圈的高度知道了,那么最短行就很容易写出来了;
再然后就是控制空格输出的位置就好了;
给出AC代码:
#include<iostream>#include<string>#include<cstring>using namespace std;int main(){char x;int y;int t;scanf("%d", &t);while (t--){getchar();scanf("%c %d", &x, &y);int z = y / 6 + 1;int len;if ((y - 3) % 2 == 0)len = (y - 3) / 2;else len = (y - 3) / 2 + 1;int wd = len + 2 * z;for (int i = 0; i < z; i++)printf(" "); //输出第一个最短行for (int i = 0; i < len; i++)printf("%c", x);//for (int i = 0; i < z; i++)printf(" ");printf("\n");for (int i = 0; i < (y-3)/2; i++) //输出上圈{for (int j = 0; j < wd; j++){if (j< z || j>len + z - 1)printf("%c", x);else printf(" ");}printf("\n");}for (int i = 0; i < z; i++)printf(" "); //输出中间的最短行for (int i = 0; i < len; i++)printf("%c", x);//for (int i = 0; i < z; i++)printf(" ");printf("\n");for (int i = 0; i < len; i++) //输出下圈{for (int j = 0; j < wd; j++){if (j< z || j>len + z - 1)printf("%c", x);else printf(" ");}printf("\n");}for (int i = 0; i < z; i++)printf(" "); //输出最后的最短行;for (int i = 0; i < len; i++)printf("%c", x);//for (int i = 0; i < z; i++)printf(" ");printf("\n");if (t)printf("\n"); //控制每次输出之间有空行;}return 0;}
1 0
- hdu 1256 画8
- hdu-1256-画8
- HDU 1256 画8
- HDU 1256 画8
- hdu 1256 画8
- hdu 1256 画8
- hdu 1256 画 8
- HDU 1256 画8
- hdu-1256-画8
- hdu 1256 画8
- HDU 1256 画8
- HDU 1256 画8
- hdu-1256 画8
- HDU 1256 画8
- HDU 1256 画8
- HDU:1256 画8
- HDU 1256-画8
- HDU 1256 画8【图形】
- JDK 1.7 Integer.parseInt 源码解析
- 引用(三)
- python的注释
- Android开发如何进阶?
- play with framework
- HDU 1256 画8
- 关于HashMap 中的 transient table
- 仿百度壁纸客户端(三)——首页单向,双向事件冲突处理,壁纸列表的实现
- 作为学生,在最近java开发的心得
- Java反编译工具JAD及Eclipse插件jadclipse的安装
- AlertDialog 点击按钮后不关闭的处理办法
- Android多级树形菜单并且支持多选功能
- MVC设计模式 和 MVVC设计模式
- 机器学习之决策树算法概要