BigNumberPlus大数加法

来源:互联网 发布:数据服务已断开连接 编辑:程序博客网 时间:2024/06/15 23:56
/*BigNumberPlus(char* strNumLeft, char* strNumRight)@author arhaiyun*/#include "stdafx.h"#include <iostream>#include <assert.h>#include <string.h>using namespace std;char* BigNumberPlus(char* strNumLeft, char* strNumRight){assert(strNumLeft != NULL && strNumRight != NULL);int lenLeft = strlen(strNumLeft);int lenRight = strlen(strNumRight);int maxLen = lenLeft > lenRight ? lenLeft : lenRight;char* result = new char[maxLen + 2];memset(result, 0, sizeof(char) * (maxLen + 2));result[0] = '0';int i = lenLeft - 1;int j = lenRight - 1;int k = maxLen;while(i >=0 && j >= 0){result[k--] = strNumLeft[i--] + strNumRight[j--] - '0';}if(i >= 0){while(i >= 0)result[k--] = strNumLeft[i--];}if(j >= 0){while(j >= 0)result[k--] = strNumLeft[j--];}for(i = maxLen; i > 0; i--){if(result[i] > '9'){result[i] -= 10;result[i - 1] += 1;}}size_t pos = strspn(result, "0");printf("%s\n", result + pos);return result;}int main(int argc, char* argv[]){char strNum1[] = "7897912345678910";char strNum2[] = "98765432189";BigNumberPlus(strNum1, strNum2);system("pause");return 0;}


原创粉丝点击