1.大数加大数之模拟手工算法:
(注:这里的代码不是很完善、简洁和公整,请见谅)
这里介绍的这种方法是大数加大数就是利用两个字符窜,从后一直往前加。
这里只考虑了str1字符串比str2字符串长,
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str1, str2;
while (cin >> str1 >> str2)
{
int len1, len2,i,j;
len1 = str1.size(); // 字符串str1的长度
len2 = str2.size(); //字符串str2的长度
for (i = len1 - 1, j = len2 - 1; i >= 0; i--, j--)
str1[i] = str1[i] + (j >= 0 ? str2[j] - '0' : 0);//字符串从最后往前加,直到str2的首个字符为止
for (i =len1-1; i >=0;i--)
if (str1[i] -'0' >= 10)
{ //利用循环,若超过10就向前进位
if(i)
str1[i - 1] += 1;
else cout << "1";