问题 K: Loky的烦恼
时间限制: 1 Sec 内存限制: 128 MB
[提交][状态][讨论版]
题目描述
loky喜欢上一个女孩,女孩在loky眼中绝对是10分女。唯一有点遗憾的是女生有点近视,为了不影响她的美貌,所以她不想戴眼镜,这下问题来了--电脑上的数字她看不清楚。loky想如果自己能把这问题解决了,说不定女孩就喜欢上自己了。数字放大的模型loky已经搞定:数字
0123456789
在电脑上放大显示分别如下:
每个数字都是7行6列,最左边一列都是空格符,空白的位置均是空格符。但是程序loky不会写,现在作为好朋友兼程序员的你,出手帮帮他。
输入
多行输入。每行包括一个由数字0-9构成的字符串s,s长度不超过10000。
输出
每一行输入的字符串产生的输出描述如下:
字符串的每个数字字符按放大形式输出。规定每一行只能输出10个数字字符,超过则换行输出,详见样例。
样例输入
0123456789
00123456789
样例输出
--- ---- ---- ---- ---- ---- --- ---
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
--- ---- --- --- --- --- ---
| | | | | | | | | | | | |
| | | | | | | | | | | | |
--- ---- ---- ---- --- --- ----
--- --- ---- ---- ---- ---- ---- ---
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
--- ---- --- --- --- ---
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
--- --- ---- ---- ---- --- ---
---
| |
| |
---
|
|
----
思路:用到了三维数组,想法还是特别的新奇的,值得好好借鉴学习的!!再就是输出!!
#include <stdio.h>
#include <string.h>
#define min(x, y) ((x) < (y) ? (x) : (y))
char digit[10][7][10] =
{
" --- ", " | |", " | |", " ", " | |", " | |", " --- ", //0
" ", " | ", " | ", " ", " | ", " | ", " ", //1
" ---- ", " |", " |", " --- ", " | ", " | ", " ----", //2
" ---- ", " |", " |", " ---- ", " |", " |", " ---- ", //3
" ", " | |", " | |", " --- ", " |", " |", " ", //4
" ----", " | ", " | ", " --- ", " |", " |", " ---- ", //5
" ----", " | ", " | ", " --- ", " | |", " | |", " --- ", //6
" ---- ", " |", " |", " ", " |", " |", " ", //7
" --- ", " | |", " | |", " --- ", " | |", " | |", " --- ", //8
" --- ", " | |", " | |", " --- ", " |", " |", " ---- " //9
};(这个还是建议大家自己用手再敲一遍的,不知道为什么复制上来就乱了的了)!
char s[10005];
int main()
{
int cnt = 0, len;
while(~scanf("%s", s))
{
len = strlen(s);
for(int g=0;g<len;g+=10)
{
for(int i=0;i<7;i++)
{
for(int j=0;j<min(len-g,10);j++)
printf("%s",digit[s[j+g]-'0'][i]);
printf("\n");
}
}
}
return 0;
}