Cześć.
Od dłuższego czasu mam problem z zadaniem, które pojawiło się już na tym forum 4programmers.net/Forum/Newbie/197592-suma_binarna suma binarna dwóch liczb. Próbuje to rozwiązać na własny sposób, ale ciągle coś jest nie tak.
Proszę o podpowiedź, gdzie popełniam błąd ;)
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
short int n,m,d,maks;
short int suma=0;
bool reszta=0;
int koniec=1;
cin>> d;
for (int i=0;i<d;++i){
bool *pierwsza =new bool[10000];
bool *druga =new bool[10000];
cin>> n;
for(int i=10000-n;i<10000;++i) {
cin>>pierwsza[i];
}
cin>> m;
for(int i=10000-m;i<10000;++i) {
cin>>druga[i];
}
maks=max(n,m);
if(n==1 && pierwsza[10000-1]==0){
for(int i=10000-maks;i<10000;++i) cout<<druga[i];
continue;
}else if(m==1 && druga[10000-1]==0){
for(int i=10000-maks;i<100001;++i) cout<<pierwsza[i];
continue;
}else{
for(int i=10000-1;i>=10000-maks; --i)
{
suma=pierwsza[i]+druga[i]+reszta;
if(suma==0){
pierwsza[i]=0;
reszta=0;
}else if(suma==1){
pierwsza[i]=1;
reszta=0;
}else if(suma==2){
pierwsza[i]=0;
reszta=1;
}else if(suma==3){
pierwsza[i]=1;
reszta=1;
}
}
suma=0;
if(reszta==1){
cout<<koniec;
reszta=0;
}
reszta=0;
for(int i=10000-maks;i<10000;++i) cout<<pierwsza[i];
cout<<endl;
}
delete [] pierwsza;
delete [] druga;
}
}