您的位置:首页 > 其它

大数加法

2012-05-02 16:30 204 查看
#include<iostream>

#include<cstdio>

#include<cstring>

using namespace std;

const int N=100;

void digit(int *a,char *str)

{

int i;

int len=strlen(str);

for(i=0;i<N;i++)

{

*(a+i)=0; //初始化

}

for(i=0;i<len;i++)

{

*(a+len-i-1)=*(str+i)-'0'; //倒置

}

}

void add(int *a,int *b,int *s)

{

int i,j;

for(i=0;i<N+2;i++)

{

*(s+i)=0;

}

for(j=0;j<N;j++)

{

s[j]+=a[j]+b[j];

s[j+1]+=s[j]/10;

s[j]%=10;

}

}

int main()

{

int a
,b
,s[N+2];

char s1
,s2
;

int i,j;

while(scanf("%s%s",s1,s2))

{

digit(a,s1);

digit(b,s2);

add(a,b,s);

j=N+1;

while(s[j]==0)

{

j--;

}

for(i=j;i>=0;i--)

{

cout<<s[i];

}

cout<<endl;

}

return 0;

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