#include <cstdlib>
#include <iostream>
using namespace std;
int result[100];
int length=0;//构造顺序表
void add(char a[],char b[]){
int i;
int j;
int m=0;//余数
int n=0; //进位数
for(i=strlen(a)-1,j=strlen(b)-1;i>=0 && j>=0;i--,j--){
m= (((int)a[i]-48)+((int)b[j]+n-48))%10;//余数
n=(((int)a[i]-48)+((int)b[j]+n-48))/10;//进位数
result[length]=m;
length++;
}
while(i>=0){
m= ((int)a[i]-48+n)%10;//余数
n=((int)a[i]-48+n)/10;//进位数
result[length]=m;
length++;
i--;
}
while(j>=0){
m= ((int)b[j]-48+n)%10;//余数
n=((int)b[j]-48+n)/10;//进位数
result[length]=m;
length++;
j--;
}
if(n!=0){
result[length]=n;
length++;
}
}
int main(int argc, char *argv[])
{
char a[]="123456789" ;
char b[]="987654321";
add(a,b);
int i;
for(i=length-1;i>=0;i--)
printf("%d",result[i]);
// printf("%d",length);
system("PAUSE");
return EXIT_SUCCESS;
}
6.大数相加优化---
最新推荐文章于 2020-05-07 11:45:07 发布