杭电oj1002即用c++实现两个大数相加
2013-11-06 23:52
169 查看
#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
int main()
{
string a,b;
int num,sum[1000];//数组尽量开大点,不然很容易越界!
cin>>num;
for(int l=0;l<num;l++)
{
cin>>a>>b;
int m=0,n=0,temp=0,i,k;
int q=0;//用于记录sum数组的长度!!
i=a.length();
k=b.length();
i=i-1;
k=k-1;
while(i>=0 && k>=0)//像是这样加,会一直加到一个数加完
{
m=a[i]-'0';
n=b[k]-'0';
sum[q++]=(temp+m+n)%10;
temp=(temp+m+n)/10;//temp取进位,并且加到下一次的加法中
i--;
k--;
}
//还需要处理一个长度的问题,判断哪个长,哪个短!
if(i>k)//a数比较大,确切的说是比较长!
{//cout<<"I am 1"<<endl;
while(i>=0)
{
m=a[i]-'0';
sum[q++]=(temp+m)%10;
temp=(temp+m)/10;
i--;
}
}
if(k>i)
{
while(k>=0)
{
m=b[k]-'0';
sum[q++]=(temp+m)%10;
temp=(temp+m)/10;
k--;
}
}
sum[q]=temp;
cout<<"Case "<<l+1<<":"<<endl;
cout<<a<<" + "<<b<<" = ";
if(sum[q]!=0) cout<<sum[q];
for(--q;q>=0;q--)
cout<<sum[q];
cout<<endl;
if(l<num-1) cout<<endl;
}
return 0;
}
#include<string>
#include<cstdio>
using namespace std;
int main()
{
string a,b;
int num,sum[1000];//数组尽量开大点,不然很容易越界!
cin>>num;
for(int l=0;l<num;l++)
{
cin>>a>>b;
int m=0,n=0,temp=0,i,k;
int q=0;//用于记录sum数组的长度!!
i=a.length();
k=b.length();
i=i-1;
k=k-1;
while(i>=0 && k>=0)//像是这样加,会一直加到一个数加完
{
m=a[i]-'0';
n=b[k]-'0';
sum[q++]=(temp+m+n)%10;
temp=(temp+m+n)/10;//temp取进位,并且加到下一次的加法中
i--;
k--;
}
//还需要处理一个长度的问题,判断哪个长,哪个短!
if(i>k)//a数比较大,确切的说是比较长!
{//cout<<"I am 1"<<endl;
while(i>=0)
{
m=a[i]-'0';
sum[q++]=(temp+m)%10;
temp=(temp+m)/10;
i--;
}
}
if(k>i)
{
while(k>=0)
{
m=b[k]-'0';
sum[q++]=(temp+m)%10;
temp=(temp+m)/10;
k--;
}
}
sum[q]=temp;
cout<<"Case "<<l+1<<":"<<endl;
cout<<a<<" + "<<b<<" = ";
if(sum[q]!=0) cout<<sum[q];
for(--q;q>=0;q--)
cout<<sum[q];
cout<<endl;
if(l<num-1) cout<<endl;
}
return 0;
}
相关文章推荐
- 杭电OJ 1002 大数相加
- 菜鸟上路,杭电OJ1002之大数相加
- 【杭电-oj】-1002-A + B Problem II(大数相加)
- C++实现的一个简单两个大数相加程序!
- 杭电1002 涉及大数相加
- 实现两个大数相加!
- C++版大数相加:字符串实现
- 杭电ACM 1002大数相加 两种方法
- 杭电1002题,大数加法问题C++版
- HDU 1002 A + B Problem II(两个大数相加)
- 栈实现两个大数相加
- 华为OJ机试题目:两个大整数相乘(纯C语言实现两个大整数相乘,两种方法实现大数相乘)
- java实现两个大数相加
- 杭电 1002 大数相加
- java实现两个大数相加,可能出现溢出错误
- 杭电1002 大数相加
- 杭电ACM 1002 大数相加
- C实现两个大数相加
- C++实现——两个大数相乘
- 剑指offer之面试题12 大数相加 实现任意两个整数的加法