大数加法
发布时间:2020-12-14 04:05:54 所属栏目:大数据 来源:网络整理
导读:Template: void AddBigUint(const char *pA,const char *pB,char *pSum) { ?? ? int lenA = strlen(pA); ?? ? int lenB = strlen(pB); ?? ? int lenSum = 0;? ? int lenBig = lenA lenB ? lenA : lenB; ?? ? char tmpA[DATA_SIZE] = {' '},tmpB[DATA_SIZE]
Template: void AddBigUint(const char *pA,const char *pB,char *pSum) { ? ? ? int lenA = strlen(pA); ? ? ? int lenB = strlen(pB); ? ? ? int lenSum = 0; ? ? int lenBig = lenA > lenB ? lenA : lenB; ? ? ? char tmpA[DATA_SIZE] = {' '},tmpB[DATA_SIZE] = {' '}; ? ? ? for (int i = 0 ; i < lenA ; ++i) { ? ? ? ? ? tmpA[i] = pA[lenA - i - 1] - '0'; ? ? ? } ? ? ? for (int i = 0 ; i < lenB ; ++i) { ? ? ? ? ? tmpB[i] = pB[lenB - i - 1] - '0'; ? ? ? } ? ? ? memset(pSum,sizeof(char) * (lenBig + 1)); ? ? ? for (int i = 0 ; i < lenBig ; ++i,++lenSum) { ? ? ? ? ? pSum[lenSum] += tmpA[i] + tmpB[i]; ? ? ? ? ? if (pSum[lenSum] >= 10) { ? ? ? ? ? ? ? pSum[lenSum + 1] += 1; ? ? ? ? ? ? ? pSum[lenSum] -= 10; ? ? ? ? ? } ? ? ? } ? ? ? if (pSum[lenSum] != 0) { ? ? ? ? ? lenSum++; ? ? ? } ? ? ? int lenHalf = lenSum >> 1; ? ? ? for (int i = 0 ; i < lenHalf ; ++i) { ? ? ? ? ? char buf = pSum[i]; ? ? ? ? ? pSum[i] = pSum[lenSum - i - 1]; ? ? ? ? ? pSum[lenSum - i - 1] = buf; ? ? ? } ? ? ? for (int i = 0 ; i < lenSum ; ++i) { ? ? ? ? ? pSum[i] += '0'; ? ? ? } ? ? pSum[lenSum] = ' '; } ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |