在一些数据位数较大的加法计算中,编译器提供的数据类型往往不能满足要求的精度,因此,我们可以使用数组来保存来保存该数的每一位,模拟加法的相加进位运算。假设整数a,b不超过100位,以下程序能模拟整数a,b相加。输入2行,依次为a,b两整数,输出a+b的值。
#include
using namespace std;
void re(string &a,int n); //将字符串逆序
int main()
{
int la,lb,i,r,t=0,j,k,s,g=0;
string a,b; //使用string类方便一次输入a,b
int c[200]={0},x[100]={0},y[100]={0};
cin>>a>>b;
la=a.length(); //使用string类的成员函数求字符串长度
lb=b.length();
re(a,la); //将a,b两字符串逆序,方便低位先进行运算
re(b,lb);
j=la;
r=lb;
for(i=0;i= lb ? la : lb; //将两串长度变为与最长的串相同,较短的前面补0
if(la>lb)
{
for(i=lb;i=0;i--) //从高到低,从第一个不为0的数开始输出和
{
if(c[i]!=0)
{
g=1;
}
if(g)
{
cout<