/*********************************
*本例实现大整数相加
*作者:yubaolee
*日期:2010-5-30
**********************************/
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
string str1;
string str2;
while(cin>>str1>>str2)
{
int nLen1, nLen2, nLen;
nLen1 = str1.length();
nLen2 = str2.length();
nLen = nLen1 > nLen2 ? nLen1 : nLen2;
reverse(str1.begin(), str1.end());
reverse(str2.begin(), str2.end());
//高位补零
if (nLen > nLen1) str1.append(nLen - nLen1, '0');
if (nLen > nLen2) str2.append(nLen - nLen2, '0');
int temp = 0; //进位数目
int i = 0;
string strResult; //存储结果
while (i < nLen)
{
if(str1[i] -0x30 + str2[i] + temp > '9')
{
strResult.append(1, str1[i] + str2[i] - '9' - 1 + temp);
temp = 1;
}
else
{
strResult.append(1, str1[i] + str2[i] - '0' + temp);
temp = 0;
}
i++;
}
if(temp == 1)
strResult.append(1, '1');
reverse(strResult.begin(), strResult.end());
cout<<strResult<<endl;
}
return 0;
}
分享到:
相关推荐
C++实现大数加减乘数
通过c++实现大数之间的加法乘法运算 利用工具为vc6.0
用C++写的重载的大数模板 大数加法、大数乘法、大数除法、大数减法 带有注释
高精度算法,包括大数加法,大数减法,大数乘法,大数除法,大数取余等高精度算法
大数加法程序 大数加法程序 大数加法程序 C,C++
用C++在控制台上写的。首先用链表实现了大数阶乘,在这基础上只要提供这样的两个链表就可以实现大数加法。想实现大数的乘法,但是失败了……
主要为大家详细介绍了C++单链表实现大数加法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
实现大数加法与乘法运算,大数减法与除法再提供
大数运算算法实现了:任意位数的两个数的加、减、乘、除算法。
用于学习 大数加法 通过字符数组 倒序输入 #define定义最大位数
有关大数加减法的聊表操作,可以使读者更加清楚地对链表的基本操作和大数的一些基本操作进行了解和学习
主要为大家详细介绍了C++使用string的大数加法运算,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
使用string类型实现大数相加。先将两个加数存为String类型,再从两个加数的末尾开始,一个数一个数的相加,跟做普通加法一个原理,只是这里需要注意的是,两个加数的类型为字符串,需要相应的转换才能相加,在代码有...
大数 加减乘 C++源代码 课程设计 上机实验 编程比赛 等可以使用
ACM中的常用高精度模板,内容:大数加法,大数乘小数,大数乘大数,大数除法。
实现了大数的加法,减法,乘法。 请参看《心希盼说明-bigint》
只要内存够大,就可以实现超大数的加法,一万、十万、百万都不成问题。。。
大数浮点型的加法,估计老师会让做的,先收藏了吧。