长整数求和.

来源:百度知道 编辑:UC知道 时间:2024/05/10 15:41:20
请问一下如何求长整数的和?
如1234569912345678912345223689535+89257354738816578738267823=?
告诉我一下算法就可以了.不过如果有原码的话就更好了.
谢谢了.
lmnm:
你能不能在你的代码中加一些注释呢?
这样很难看懂得.呵呵.谢谢了.

用堆栈。
从高位到地位挨个存入堆栈。因为堆栈是先进后出的。
所以你可以按位取出,将其值相加,进位值传递到下一次计算中,
当其中一个堆栈到达底端时,使用0代替。

#include <stdio.h>
void main()
{
char x[100],y[100],z[100];

int Lx,Ly,Lz,L;
int Lmax,Lmin;
int i,j,k=0;

printf("Enter first data\n");
scanf("%s",&x[0]);
printf("Enter second data\n");
scanf("%s",&y[0]);
Lx = strlen(x);
Ly = strlen(y);
Lmax = Lx; Lmin=Lx;
if (Ly > Lmax) Lmax=Ly;
if (Ly < Lmin) Lmin=Ly;

if (Lx < Lmax) {
for (i=Lx-1;i>=0;i--) x[i+Lmax-Lx] = x[i];
for (i=0;i<=Lmax -Lx-1;i++) x[i] = '0';
x[Lmax] = '\0';
}

if (Ly < Lmax) {
for (i=Ly-1;i>=0;i--) y[i+Lmax-Ly] = y[i];
for (i=0;i<= Lmax-Ly-1;i++) y[i] = '0';
y[Lmax] = '\0';
}
k = 0;
for (i=Lmax-1;i>=0;i--){
z[i] = x[i]