Non riesco a capire come dovrebbe funzionare il tuo programma (cos'è quel groviglio di variabili? Perché usi la ricorsione in quel modo quando puoi scrivere un semplice ciclo?), comunque ecco come farei io un programma del genere:
codice:
#include <iostream>
using namespace std;

int main()
{
    int inputN;
    bool first1;
    cout<<"Inserisci il numero: ";
    cin>>inputN;
    if(inputN<0)
    {
        cout<<'-';
        inputN=-inputN;
    }
    for(int counter=sizeof(inputN)*8;counter;counter--)
    {
        if(inputN&(1<<(counter-1)))
        {
            first1=true;
            cout<<'1';
        }
        else if(first1)
            cout<<'0';
    }
    cin.sync();
    cin.ignore();
    return 0;
}
.