H : 没错,就让你做A+B
来源:互联网 发布:重庆医院网络主管招聘 编辑:程序博客网 时间:2024/04/27 23:08
题目地址:http://oj.nyist.me/OJ/contest_problem.php?cid=1036&pid=7
题目描述
什么?听说你把上一道A+B做出来了!这么厉害的吗,那我就再出一道A+B的题考考你!
现在给你一个A和一个B,输出A+B的值。但是为了增加难度,这个式子你要用图形表示,'0'到'9'的表示如下图所示(还有'+','-','='符号)
##### ....# ##### ##### #...# ##### ##### ##### ##### ##### ..... ..... .....#...# ....# ....# ....# #...# #.... #.... ....# #...# #...# ..#.. ..... .....#...# ....# ....# ....# #...# #.... #.... ....# #...# #...# ..#.. ..... ######...# ....# ##### ##### ##### ##### ##### ....# ##### ##### ##### ##### .....#...# ....# #.... ....# ....# ....# #...# ....# #...# ....# ..#.. ..... ######...# ....# #.... ....# ....# ....# #...# ....# #...# ....# ..#.. ..... .....##### ....# ##### ##### ....# ##### ##### ....# ##### ##### ..... ..... .....
输入
T组输入,接下来的T行(T<300),每一行输入A,B(0<=|A|,|B|<=1000000000)
输出
按照输出要求,输出该等式A+B=?。(能省略的正号,应省略)(两个图形之间用一列'.'隔开)(自己看输出理解题意)
两个输出之间输出一个空行。
样例输入
复制
21 -11193 257
样例输出
复制
....#...........#.....#.................#.#####....#...........#.....#.................#.#...#....#...........#.....#.#####...........#.#...#....#.#####.....#.....#.......#####.....#.#...#....#...........#.....#.#####...........#.#...#....#...........#.....#.................#.#...#....#...........#.....#.................#.#####....#.#####.#####.......#####.#####.#####.......#...#.#####.#####....#.#...#.....#...#.......#.#.........#.......#...#.#.....#...#....#.#...#.....#...#.......#.#.........#.#####.#...#.#.....#...#....#.#####.#####.#####.#####.#####.....#.......#####.#####.#...#....#.....#.....#...#...#.........#.....#.#####.....#.....#.#...#....#.....#.....#...#...#.........#.....#...........#.....#.#...#....#.#####.#####.......#####.#####.....#...........#.#####.#####
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;char a0[7][5]= {'#','#','#','#','#','#','.','.','.','#','#','.','.','.','#','#','.','.','.','#','#','.','.','.','#','#','.','.','.','#','#','#','#','#','#'};char a1[7][5]= {'.','.','.','.','#','.','.','.','.','#','.','.','.','.','#','.','.','.','.','#','.','.','.','.','#','.','.','.','.','#','.','.','.','.','#'};char a2[7][5]= {'#','#','#','#','#','.','.','.','.','#','.','.','.','.','#','#','#','#','#','#','#','.','.','.','.','#','.','.','.','.','#','#','#','#','#'};char a3[7][5]= {'#','#','#','#','#','.','.','.','.','#','.','.','.','.','#','#','#','#','#','#','.','.','.','.','#','.','.','.','.','#','#','#','#','#','#'};char a4[7][5]= {'#','.','.','.','#','#','.','.','.','#','#','.','.','.','#','#','#','#','#','#','.','.','.','.','#','.','.','.','.','#','.','.','.','.','#'};char a5[7][5]= {'#','#','#','#','#','#','.','.','.','.','#','.','.','.','.','#','#','#','#','#','.','.','.','.','#','.','.','.','.','#','#','#','#','#','#'};char a6[7][5]= {'#','#','#','#','#','#','.','.','.','.','#','.','.','.','.','#','#','#','#','#','#','.','.','.','#','#','.','.','.','#','#','#','#','#','#'};char a7[7][5]= {'#','#','#','#','#','.','.','.','.','#','.','.','.','.','#','.','.','.','.','#','.','.','.','.','#','.','.','.','.','#','.','.','.','.','#'};char a8[7][5]= {'#','#','#','#','#','#','.','.','.','#','#','.','.','.','#','#','#','#','#','#','#','.','.','.','#','#','.','.','.','#','#','#','#','#','#'};char a9[7][5]= {'#','#','#','#','#','#','.','.','.','#','#','.','.','.','#','#','#','#','#','#','.','.','.','.','#','.','.','.','.','#','#','#','#','#','#'};char b1[7][5]= {'.','.','.','.','.','.','.','#','.','.','.','.','#','.','.','#','#','#','#','#','.','.','#','.','.','.','.','#','.','.','.','.','.','.','.'};//+char b2[7][5]= {'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','#','#','#','#','#','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'};//-char b3[7][5]= {'.','.','.','.','.','.','.','.','.','.','#','#','#','#','#','.','.','.','.','.','#','#','#','#','#','.','.','.','.','.','.','.','.','.','.'};//=int main(){ int n; scanf("%d",&n); while(n--) { char r[66]= {0}; long long a,b,c; scanf("%lld%lld",&a,&b); c=a+b; int flag=0; if(a<0) { flag=1; a=-a; } for(int i=0;; i++) { r[i]=a%10+'0'; a/=10; if(a==0) break; } int la=strlen(r); for(int j=0; j<la/2; j++) swap(r[j],r[la-1-j]); if(b<0) { r[la]='-'; b=-b; } else r[la]='+'; for(int i=la+1;; i++) { r[i]=b%10+'0'; b/=10; if(b==0) break; } int lb=strlen(r); for(int j=la+1; j<(la+lb+1)/2; j++) swap(r[j],r[lb-j+la]); r[lb]='='; if(c<0) { r[lb+1]='-'; c=-c; for(int i=lb+2;; i++) { r[i]=c%10+'0'; c/=10; if(c==0) break; } int lc=strlen(r); for(int j=lb+2; j<(lc+lb+2)/2; j++) swap(r[j],r[lc-j+lb+1]); } else { for(int i=lb+1;; i++) { r[i]=c%10+'0'; c/=10; if(c==0) break; } int lc=strlen(r); for(int j=lb+1; j<(lc+lb+1)/2; j++) swap(r[j],r[lc-j+lb]); } int lc=strlen(r); for(int x=0; x<7; x++) { if(flag==1) { for(int y=0; y<5; y++) printf("%c",b2[x][y]); printf("."); } for(int k=0; k<lc; k++) { if(r[k]=='0') { for(int y=0; y<5; y++) printf("%c",a0[x][y]); if(k!=lc-1) printf("."); } if(r[k]=='1') { for(int y=0; y<5; y++) printf("%c",a1[x][y]); if(k!=lc-1) printf("."); } if(r[k]=='2') { for(int y=0; y<5; y++) printf("%c",a2[x][y]); if(k!=lc-1) printf("."); } if(r[k]=='3') { for(int y=0; y<5; y++) printf("%c",a3[x][y]); if(k!=lc-1) printf("."); } if(r[k]=='4') { for(int y=0; y<5; y++) printf("%c",a4[x][y]); if(k!=lc-1) printf("."); } if(r[k]=='5') { for(int y=0; y<5; y++) printf("%c",a5[x][y]); if(k!=lc-1) printf("."); } if(r[k]=='6') { for(int y=0; y<5; y++) printf("%c",a6[x][y]); if(k!=lc-1) printf("."); } if(r[k]=='7') { for(int y=0; y<5; y++) printf("%c",a7[x][y]); if(k!=lc-1) printf("."); } if(r[k]=='8') { for(int y=0; y<5; y++) printf("%c",a8[x][y]); if(k!=lc-1) printf("."); } if(r[k]=='9') { for(int y=0; y<5; y++) printf("%c",a9[x][y]); if(k!=lc-1) printf("."); } if(r[k]=='+') { for(int y=0; y<5; y++) printf("%c",b1[x][y]); printf("."); } if(r[k]=='-') { for(int y=0; y<5; y++) printf("%c",b2[x][y]); printf("."); } if(r[k]=='=') { for(int y=0; y<5; y++) printf("%c",b3[x][y]); printf("."); } } printf("\n"); } if(n>=1) printf("\n"); } return 0;}
阅读全文
0 0
- H : 没错,就让你做A+B
- NYOJ H : 没错,就让你做A+B
- 你看不到,就让我做你的双目
- 还好,没错过你
- H-2035-人见人爱A^B
- 留下一点点 如果还可以做你的朋友 梦想就让她继续
- [kuangbin带你飞]专题七 线段树 【A、B、C、E、G、H】
- 第一次就让对方记得你
- 第一次就让对方记得你
- 第一次就让对方记得你
- 一句话j就让你笑
- A/ B测试——你做的是错的
- NYOJ G : 你说啥,又让我做A+B?
- A股B股H股
- 放大器:A、B、AB、D、G、H
- A股、B股、H股简介
- 放大器:A、B、AB、D、G、H
- 问题 H: 部分A+B (15)
- Older Microsoft Runtimes for older software
- c#中的var关键字
- C#实现表达式求值
- 495. Teemo Attacking
- bash 命令(一)
- H : 没错,就让你做A+B
- php使用jwt的例子
- [编程题] 好多鱼!
- open cv
- 高级软件工程C编码实践
- c#窗体关闭的时候关闭线程
- C++ plus 笔记1
- ROS中的CMakelists
- A