All pastes #402982 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-03-20 03:01 UTC
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);
}