100位的大数互相加减
#include <iostream>
#include<string.h>
using namespace std;
char a[100],b[100];
int ax[100],bx[100];
int ma;
int ad(int max,int ax[],int bx[])
{
for (int i=0; i<max ; i++) {
ax[i]=ax[i]+bx[i];
if (ax[i]>=10) {
ax[i]-=10;
ax[i+1]++;
}
}
return 0;
}
int main()
{
int i,j;
cin>>a>>b;
int la=strlen(a);
int lb=strlen(b);
memset(ax, 0, sizeof(ax));
memset(bx, 0, sizeof(bx));
// ********倒过来
for(j = 0, i = strlen(a)- 1 ; i >= 0 ; i --)
ax[j++] = a[i] - '0';
for(j = 0 , i = lb - 1 ; i >= 0 ; i --)
ax[j++] = b[i] - '0';
ma=la>lb?la:lb;
ad(ma, ax, bx);
for( i = 100 ; i >= 0; i -- )
{
if( ax[i] != 0 )break;
}
//倒过来
for(;i>=0;i--)
{
cout<<ax[i];
}
}
本文介绍了一个简单的100位大数加法算法实现,通过字符串输入两个大数并将其转换为整数数组进行逐位相加处理。文章详细展示了如何处理进位及结果输出的过程。
1597

被折叠的 条评论
为什么被折叠?



