ZOJ-2831
来源:互联网 发布:matlab生成特殊矩阵 编辑:程序博客网 时间:2024/06/07 16:11
完全的苦力代码题!!!能把A+B搞的这么复杂,真心有才,最麻烦的莫过于把那1-9个数字还有加号挪到代码里的数组里面去了,如果可以读文件来解析的话应该能简单一点,但是对OJ的我不知道怎么搞。。算了还是一点一点抄过去吧,还好一次AC了,嘿嘿200多行代码一次AC的感觉真不错
#include<stdio.h>#include<string.h>int get_number(char s[12][8], char c[8]){ int i; for (i = 0; i < 10; i++) if (memcmp(s[i], c, 8 * sizeof(char)) == 0) return i; if (memcmp(s[10], c, 8 * sizeof(char)) == 0) return '+'; else return ' ';}int main(){ char s[12][8] = { { ' ', 'X', 'X', 'X', 'X', 'X', 'X', ' ' }, { ' ', 'X', ' ', ' ', ' ', ' ', ' ', 'X' }, { ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X' }, { ' ', 'X', ' ', ' ', ' ', ' ', 'X', ' ' }, { ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', ' ', 'X', ' ' }, { ' ', ' ', 'X', 'X', 'X', 'X', 'X', ' ' }, { 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ' }, { ' ', 'X', 'X', ' ', 'X', 'X', 'X', ' ' }, { ' ', 'X', 'X', 'X', ' ', ' ', ' ', 'X' }, { ' ', ' ', ' ', ' ', 'X', ' ', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } }; char digit[11][8][8] = { { { ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ' } }, { { ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ' }, { ' ', 'X', 'X', 'X', 'X', ' ', ' ', ' ' }, { ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ' }, { ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ' }, { ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ' }, { ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ' }, { ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ' }, { ' ', 'X', 'X', 'X', 'X', 'X', 'X', ' ' } }, { { ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ' }, { ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ' }, { ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ' }, { ' ', 'X', 'X', 'X', 'X', 'X', 'X', ' ' } }, { { ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ' }, { ' ', 'X', ' ', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', ' ', 'X', 'X', 'X', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ' }, { ' ', 'X', ' ', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ' } }, { { ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ' }, { ' ', ' ', ' ', 'X', 'X', 'X', ' ', ' ' }, { ' ', ' ', ' ', 'X', 'X', 'X', ' ', ' ' }, { ' ', ' ', 'X', ' ', 'X', 'X', ' ', ' ' }, { ' ', 'X', ' ', ' ', 'X', 'X', ' ', ' ' }, { ' ', 'X', 'X', 'X', 'X', 'X', 'X', ' ' }, { ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ' }, { ' ', ' ', 'X', 'X', 'X', 'X', 'X', ' ' } }, { { ' ', ' ', 'X', 'X', 'X', 'X', 'X', ' ' }, { ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ' }, { ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ' }, { ' ', ' ', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ' }, { ' ', 'X', ' ', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ' } }, { { ' ', ' ', ' ', 'X', 'X', 'X', 'X', ' ' }, { ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ' }, { ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ' }, { ' ', 'X', 'X', 'X', 'X', 'X', ' ', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ' } }, { { ' ', 'X', 'X', 'X', 'X', 'X', 'X', ' ' }, { ' ', 'X', ' ', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ' }, { ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ' }, { ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ' }, { ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ' }, { ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ' } }, { { ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ' } }, { { ' ', ' ', 'X', 'X', 'X', 'X', ' ', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', 'X', 'X', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', 'X', 'X', 'X', 'X', 'X', ' ' }, { ' ', ' ', ' ', ' ', ' ', 'X', 'X', ' ' }, { ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ' }, { ' ', 'X', 'X', 'X', 'X', ' ', ' ', ' ' } }, { { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' }, { ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ' }, { ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ' }, { ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ' }, { 'X', 'X', 'X', 'X', 'X', 'X', 'X', ' ' }, { ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ' }, { ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ' }, { ' ', ' ', ' ', 'X', ' ', ' ', ' ', ' ' } } }; int n; scanf("%d", &n); getchar(); while (n--) { char t[8][1000]; char temp[8]; memset(t, ' ', 8 * 1000 * sizeof(char)); int i, j, k; for (i = 0; i < 8; i++) gets(t[i]); int a = 0, b = 0, isFirst = 1; for (j = 0; j < 1000; j++) { for (i = 0; i < 8; i++) temp[i] = t[i][j]; int number = get_number(s, temp); if (number != ' ') { if (number != '+') { if (isFirst) a = a * 10 + number; else b = b * 10 + number; } else isFirst = 0; j += 6; } } int result = a + b; char rs[10]; int l = 0; if (!result) { rs[0] = '0'; l = 1; } else { while (result) { rs[l++] = result % 10 + '0'; result /= 10; } } for (i = 0; i < 8; i++) { for (j = l - 1; j >= 0; j--) for (k = 0; k < 8; k++) putchar(digit[rs[j] - '0'][i][k]); putchar('\n'); } if (n) { gets(t[0]); putchar('\n'); } } return 0;}
0 0