I am doing my school homework on university - program which takes 2 binary numbers and write their sum. My university uses a special software for testing homeworks and one of tests is "Test by random data" which my program cant pass, can someone give me some tips where the problem can be? Program:
#include <iostream>
#include <string>
using namespace std;
int B2D(string number)
{
int result = 0, pow = 1;
for ( int i = number.length() - 1; i >= 0; --i, pow <<= 1 )
result += (number[i] - '0') * pow;
return result;
}
string D2B(int number)
{
if ( number == 0 ) return "0";
if ( number == 1 ) return "1";
if ( number % 2 == 0 )
return D2B(number / 2) + "0";
else
return D2B(number / 2) + "1";
}
int main()
{
string input_number;
string input_number2;
cout << "Write 2 binary numbers" << endl;
if(!(cin >> input_number >> input_number2))
{
cout << "Wrong entry." << endl;
return 0;
}
for(unsigned int i=0;i<input_number.size();i++){
if((input_number[i] != '1') && (input_number[i] != '0'))
{
cout << "Wrong entry." << endl;
return 0;
}
}
for(unsigned int i=0;i<input_number2.size();i++){
if((input_number2[i] != '1') && (input_number2[i] != '0'))
{
cout << "Wrong entry."<<endl;
return 0;
}
}
int result = B2D(input_number);
int result2 = B2D(input_number2);
int result3 = result + result2;
string result4 = D2B(result3);
cout << "Result: " << result4 << endl;
return 0;
}