首页 > 学院 > 开发设计 > 正文

大数相加

2019-11-08 20:10:01
字体:
来源:转载
供稿:网友
#include <stdio.h>#include<string.h>#include <stdlib.h>#define MAX 101void bigDataAdd(char a[], char b[]);int main(){ char a[MAX] = {0}; char b[MAX] = {0}; gets(a); gets(b); bigDataAdd(a,b); return 0;}void bigDataAdd(char a[], char b[]){ int length = 0; int m = 0; char sum[MAX+1]; char tempA[MAX] = {0}; char tempB[MAX] = {0}; int jin = 0; int lengthA = strlen(a); int lengthB = strlen(b); length = lengthA > lengthB ? lengthA : lengthB; // 将字符串翻转 for(m=0;m<length;m++) { if (lengthA == length) { tempA[m] = a[lengthA-1-m]; if (m < lengthB) { tempB[m] = b[lengthB-1-m]; } else { tempB[m] = '0'; } } else if (lengthB == length) { tempB[m] = b[lengthB-1-m]; if (m < lengthA) { tempA[m] = a[lengthA-1-m]; } else { tempA[m] = '0'; } } } // 相加 for(m=0;m<length;m++) { sum[m] = (tempA[m] - '0' + (tempB[m] - '0') + jin) % 10 + '0'; jin = (tempA[m] - '0' + (tempB[m] - '0') + jin) / 10; } for(m=0;m<length;m++) { PRintf("%c", sum[length - 1 - m]); }}

参考:http://blog.csdn.net/insistgogo/article/details/6581466

http://www.cnblogs.com/Lyush/archive/2011/08/14/2137721.html


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表