**
签到题但是没做出来
**
转眼就到了2018年的ACM集训队第二次招新,希望大家在本次比赛中取得好成绩!
看标题名字就知道,历史总是惊人的相似,这个题目和上次招新赛的某道题很像,还是关于A+B问题的,题目是这样的:
给出你一个表达式只包含’+’,’-'两种运算,然后你要输出对应结果的字符画形式。
给出的表达式形式一定是形如:
‘a+b’,‘a-b’,这种形式,并且保证a和b的范围都在0~9之内.
具体的输入和输出可以通过观察样例得到。
…# ##### ##### #…# ##### ##### ##### ##### ##### … … …
#…# …# …# …# #…# #… #… …# #…# #…# …#… … …
#…# …# …# …# #…# #… #… …# #…# #…# …#… … #####
#…# …# ##### ##### ##### ##### ##### …# ##### ##### ##### ##### …
#…# …# #… …# …# …# #…# …# #…# …# …#… … #####
#…# …# #… …# …# …# #…# …# #…# …# …#… … …
…# ##### ##### …# ##### ##### …# ##### ##### … … …
输入描述:
第一行包含一个整数T,代表有T组输入数据
对于每组数据,包含一个表达式,如:
3-5
1+4
0-0
输出描述:
对于每一个表达式,输出对应的字符画,输出方式可以观察样例得到。
对于每组数据,输出一个换行.
4
3-5
9-9
9+9
0-0
样例输出:
#####…#####…#####
…#…#…#
…#…#…#####…#
#####.#####.#####…#####.#####
…#…#.#####…#…
…#…#…#…
#####…#####…#####
#####…#####…#####
#…#…#…#…#…#
#…#…#…#.#####.#…#
#####.#####.#####…#…#
…#…#.#####.#…#
…#…#…#…#
#####…#####…#####
#####…#####…#.#####
#…#…#…#…#…#.#…#
#…#…#…#…#.#####…#.#…#
#####.#####.#####…#.#####
…#…#…#.#####…#.#…#
…#…#…#…#.#…#
#####…#####…#.#####
#####…#####…#####
#…#…#…#…#…#
#…#…#…#.#####.#…#
#…#.#####.#…#…#…#
#…#…#…#.#####.#…#
#…#…#…#…#…#
#####…#####…#####
#include<stdio.h>
char shuzi[7][70]= {
{"#####....############...##########################..............."},
{"#...#....#....#....##...##....#........##...##...#..#............"},
{"#...#....#....#....##...##....#........##...##...#..#.......#####"},
{"#...#....##########################....#####################....."},
{"#...#....##........#....#....##...#....##...#....#..#.......#####"},
{"#...#....##........#....#....##...#....##...#....#..#............"},
{"#####....###########....###########....###########..............."},
};
int er(int x)
{
if(x<=9&&x>=0)
return 5*x;
if((char)x=='+')
return 50;
if((char)x=='-')
return 55;
if((char)x=='=')
return 60;
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int a,c,num=0,suanshi[7],sum;
char b;
scanf("%d%c%d",&a,&b,&c);
suanshi[num++]=er(a);
suanshi[num++]=er((int)b);
suanshi[num++]=er(c);
suanshi[num++]=er((int)'=');
if(b=='+') sum=a+c;
if(b=='-') sum=a-c;
if(sum<0)
{
suanshi[num++]=er((int)'-');
sum*=-1;
}
if(sum/10)
{
suanshi[num++]=er(sum/10);
sum%=10;
}
suanshi[num++]=er(sum);
for(int i=0; i<7; i++)
{
for(int j=0; j<num; j++)
{
if(j)
printf(".");
int jishu=suanshi[j];
for(int k=0; k<5; k++)
printf("%c",shuzi[i][jishu+k]);
}
printf("\n");
}
printf("\n");
}
return 0;
}