#include <cstdlib>
#include <iostream>
using namespace std;
int result[100];
int length=0;//构造顺序表
//数组的逆置
void reverse(char* &a){
int i=0;
int j=strlen(a)-1;
int temp;
while(i<j){
temp=a[i];
a[i]=a[j];
a[j]=temp;
i++;
j--;
}
}
void add(char a[],char b[]){
int i;
int m=0;//余数
int n=0; //进位数
reverse(a);
reverse(b);
for(i=0;i<strlen(a) && i<strlen(b);i++){
m= (((int)a[i]-48)+((int)b[i]+n-48))%10;//余数
n=(((int)a[i]-48)+((int)b[i]+n-48))/10;//进位数
result[i]=m;
length++;
}
while(strlen(a)>i){
m= ((int)a[i]-48+n)%10;//余数
n=((int)a[i]-48+n)/10;//进位数
result[i]=m;
length++;
i++;
}
while(strlen(b)>i){
m= ((int)b[i]-48+n)%10;//余数
n=((int)b[i]-48+n)/10;//进位数
result[i]=m;
length++;
i++;
}
if(n!=0){
result[i]=n;
length++;
}
}
int main(int argc, char *argv[])
{
char a[]="9" ;
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;
}
5.大数相加
最新推荐文章于 2024-04-09 23:46:24 发布