problem:
输入两个长度小于200位的数字,并求和输出。
tip:
大数求和转化为字符串的形式。
solution:
a.两个数都为正整数时:
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
string add(string str1, string str2)
{
int i;
string str;
int len_str1 = str1.length();
int len_str2 = str2.length();
int n = abs(len_str1-len_str2);
//长度对齐
if(len_str1 < len_str2)
for(i=0; i<n; i++)
str1 = "0"+ str1;
else
for(i=0; i<n; i++)
str2 = "0"+ str2;
len_str1 = str1.length(); //此时两个字符串的长度一样
int cf=0; //进位标志位
int temp; //存放两个数相加的和
for(i=len_str1-1; i>=0; i--)
{
temp = str1[i]-'0' + str2[i]-'0' + cf; //把字符串转化为整型
cf = temp/10;
temp = temp