C++ 大数相加
2017-04-04 15:23
190 查看
#include <iostream>
#include <cstring>
#include <stdio.h>
#include <algorithm>
using namespace std;
char a[10000];
char b[10000];
char c[10000];
int m[100000];
int n[100000];
int x[100000];
int t;
int main()
{
scanf("%d",&t);
int cases=1;
while(t--)
{
memset(x,0,sizeof(x));
memset(m,0,sizeof(m));
memset(n,0,sizeof(n));
scanf("%s%s",a,b);
int la=strlen(a);
int lb=strlen(b);
int lc=max(la,lb) ;
for(int i=la-1; i>=0; i--)
m[la-i-1]=a[i]-'0';
for(int j=lb-1; j>=0; j--)
n[lb-j-1]=b[j]-'0';
for(int i=0; i<lc; i++)
{
x[i]+=m[i]+n[i];
x[i+1]+=(x[i]/10);
x[i]=x[i]%10;
}
if(x[lc]>0) lc++;
printf("Case %d:\n",cases++);
printf("%s + %s = ",a,b);
for(int i=lc-1; i>=0; i--)
printf("%d",x[i]);
printf("\n");
if(t) printf("\n");
}
return 0;
}
#include <cstring>
#include <stdio.h>
#include <algorithm>
using namespace std;
char a[10000];
char b[10000];
char c[10000];
int m[100000];
int n[100000];
int x[100000];
int t;
int main()
{
scanf("%d",&t);
int cases=1;
while(t--)
{
memset(x,0,sizeof(x));
memset(m,0,sizeof(m));
memset(n,0,sizeof(n));
scanf("%s%s",a,b);
int la=strlen(a);
int lb=strlen(b);
int lc=max(la,lb) ;
for(int i=la-1; i>=0; i--)
m[la-i-1]=a[i]-'0';
for(int j=lb-1; j>=0; j--)
n[lb-j-1]=b[j]-'0';
for(int i=0; i<lc; i++)
{
x[i]+=m[i]+n[i];
x[i+1]+=(x[i]/10);
x[i]=x[i]%10;
}
if(x[lc]>0) lc++;
printf("Case %d:\n",cases++);
printf("%s + %s = ",a,b);
for(int i=lc-1; i>=0; i--)
printf("%d",x[i]);
printf("\n");
if(t) printf("\n");
}
return 0;
}
相关文章推荐
- C/C++语言最新华为机试题“大数相加算法”
- C/C++“大数相加算法”
- C++版大数相加:字符串实现
- 【c++】大数相加
- 【C++】两个大数相加之HuaWei上机
- 杭电oj1002即用c++实现两个大数相加
- 基于C++的string类的大数相加的一种算法
- 复习C/C++编程之大数相加
- 大数相加算法,基于C++
- hdoj 1002 a+b 大数相加 C++
- 大数相加 大数相乘 C++
- C++大数(正整数)相加相减v1
- 大数相加的C++简单实现
- 大数相加,分别用C++和Java实现
- C++实现——大数相加
- 大数相加 C/C++
- C++实现的一个简单两个大数相加程序!
- C++大数相加
- c++ 大数相加
- C,C++大数相加