大数加法
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;
}
#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;
}
相关文章推荐
- 大数加法顺序表及链式表的实现
- 51nod 1005 大数加法
- 大菲波数 大数加法模板
- 【51Nod】1005 大数加法
- 大数加法
- 51nod 1005 大数加法
- 51node 1005 大数加法
- 51Nod--1005 大数加法
- HDU-多个大数加法问题
- HDOJ 1250 Hat's Fibonacci (大数的加法)
- HDU 1002 大数加法
- 高精度--大数加法 luogu 1601
- 大数的加法
- poj 3181 数钱dp + 特殊技巧解决大数加法
- 1002 Java大数加法
- POJ1625 DP+AC自动机+大数加法
- HDU 1753 大明A+B (大数加法)
- C语言-大数加法
- Java大数加法运算
- C语言大数加法