您的位置:首页 > 编程语言 > C语言/C++

实现两个大数相加!

2015-09-12 16:04 501 查看
这是xxx的一个上机题目,实现两个大数的相加

void mylongadd(char *a, char *b, char *c)
{
int len_a = strlen(a);
int len_b = strlen(b);
int i = len_a - 1,j = len_b -1;
int k = 0,flag = 0;
int x,y;
while(i >= 0 || j >= 0)
{
if(i < 0) x = '0';
else
x = a[i];
if(j < 0) y = '0';
else
y = b[j];
int z = x - '0' + y - '0';
if(flag)
z += 1;
if(z > 9)
{
flag = 1;
z %= 10;
}
else
flag = 0;

c[k ++] = z + '0';
i--;
j--;
}
if(flag)
c[k++] = '1';
c[k++] = '\0'; //必须要的

for(int p = strlen(c)-1; p >= 0; p--)
{
cout << c[p];
}
cout << endl;
}
main函数中

char a[100]="123456789123456789";
char b[100]="123456789123456789";
char c[100];
cout<<"   "<<a<<"\r\n"<<"+"<<"  "<<b<<"\r\n"<<"="<<"  ";
mylongadd(a,b,c);


结果为

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息