标签:
#include <stdio.h> #include <stdbool.h> #define arrayLength 20 #define bitMax 1000 main(){ char inputA[arrayLength][bitMax]; char inputB[arrayLength][bitMax]; char result[arrayLength][bitMax + 1]; int caseCount = 0; scanf_s("%d", &caseCount); for (int i = 0; i < caseCount; i++){ scanf_s("%s", &inputA[i][0], 1000); scanf_s("%s", &inputB[i][0], 1000); } //Calculating... result[0],result[1] for (int caseNum = 0; caseNum < caseCount; caseNum++) { char *ptrA, *ptrB, *ptrResult; ptrA = inputA[caseNum]; ptrB = inputB[caseNum]; ptrResult = result[caseNum]; int lengthA = getLengh(ptrA); int lengthB = getLengh(ptrB); int lengthMax = lengthA>lengthB ? lengthA : lengthB; //Fill A or B with zero if (lengthA > lengthB){ ptrB += lengthB; for (int j = 0; j <= lengthB; j++) { char temp = *ptrB; *(ptrB + lengthA - lengthB) = temp; ptrB--; } ptrB = inputB[caseNum]; for (int i = 0; i < lengthA - lengthB; i++){ *ptrB = ‘0‘; ptrB++; } } else { ptrA += lengthA; for (int j = 0; j <= lengthA; j++) { char temp = *ptrA; *(ptrA + lengthB - lengthA) = temp; ptrA--; } ptrA = inputA[caseNum]; for (int i = 0; i < lengthB - lengthA; i++){ *ptrA = ‘0‘; ptrA++; } } for (int i = 0; i <= lengthMax; i++){ *ptrResult = ‘0‘; ptrResult++; } *ptrResult = ‘\0‘; bool goAhead = false; ptrA = &inputA[caseNum][lengthMax - 1]; ptrB = &inputB[caseNum][lengthMax - 1]; ptrResult--; //Calculate result[i] for (int i = 0; i < lengthMax; i++) { int bitA = *ptrA - ‘0‘; int bitB = *ptrB - ‘0‘; *ptrResult = ‘0‘ + (bitA + bitB + goAhead) % 10; if (bitA + bitB + goAhead >= 10){ goAhead = true; } else { goAhead = false; } ptrA--; ptrB--; ptrResult--; } if (goAhead == true){ *ptrResult = ‘1‘; } else { ptrResult++; } ptrA++; ptrB++; for (int bitNum = 0; bitNum < lengthA; bitNum++){ if (*ptrA == ‘0‘) ptrA++; else { break; } } for (int bitNum = 0; bitNum < lengthB; bitNum++){ if (*ptrB == ‘0‘) ptrB++; else { break; } } printf("Case %d:\n%s + %s = %s\n\n", caseNum + 1, ptrA, ptrB, ptrResult); } } //get string length int getLengh(char *ptr){ int length = 0; while (*ptr != ‘\0‘) { ptr++; length++; } return length; }
ACM Coder [T1002] 一直wrong answer,不知道为什么。上代码!就对就对!
标签:
原文地址:http://www.cnblogs.com/jin-wen-xin/p/4785324.html