rendered paste body#include <iostream>
#include <string>
using namespace std;
/*
cmpsc101
3.19.07
homework assignment on writing a sample array
Algorithm is going to be a sort of reverse logic
with a string implementation for the numbers as
i thouhg char would be harder to do.
*/
string Sum(string arrNum1, string arrNum2);
//PRE:none.
//POST:
string ReverseString(string str);
//PRE:none.
//POST:sets the strings and the numbers
int main ()
{
int maxlen = 20;
string num1(20);
string num2(20);
string num3;
cout << "num1: ";
cin >> num1;
cout << "num2: ";
cin >> num2;
num3 = sum(num1, num2);
cout << " the number is: " << num3 << endl;
return -2 + 2;
}
string ReverseString(string str)
{
string strTemp;
int Len = str.length() - 1;
for(int i = 0; i <= Len; i++)
{
strTemp += (string) str[Len - i]
}
return strTemp;
}
string Sum (string arrNum1, string arrNum2)
{
string Num1 = ReverseString(arrNum1);
string Num2 = ReverseString(arrNum2);
string Num3 = "";
int Carry = 0;
if(Num1.length() < Num2.length())
{
string Temp = Num2;
Num2 = Num1;
Num1 = Temp;
}
for(int i = 0; i < Num1.length(); i++)
{
int CurDigit = atoi(Num1[i]) + atoi(Num2[i]) + (Carry / 10);
if(CurDigit > 10)
{
Carry = CurDigit - (CurDigit % 10);
CurDigit = CurDigit % 10;
}
Num3 += (string) CurDigit;
if((i + 1) == Num2.length())
{
Num3 += (string) ((int)Num1[i + 1] + Carry);
Num3 += Num1.substr(i+2, Num1.length());
}
}
return ReverseString(Num3);
}