Estou tentando desenvolver uma função recursiva para transformar um inteiro em numero binário e colocando o resultado em um vector usando a seguinte lógica:
A cada chamada da função, divido o numero por 2, se o resto for igual a 0, insiro um 0 no vector, se não, coloco 1 no vector.
Logo em seguida quando a função termina,eu mostro o conteúdo do vector.
porém, nada é mostrado na tela.
Por quê?
#include <iostream> #include <cstdio> #include <cstdlib> #include <string> #include <vector> using namespace std; void itob(short n,vector<int> binary); int main() { short n; vector <int> binary; cin>>n; itob(n, binary); for(int i = 0; i < binary.size(); i++) { cout<<binary.at(i)<<" "; } return 0; } void itob(short n,vector<int> binary) { if(n > 0 ) { if(n % 2 == 0) { binary.push_back(1); } else { binary.push_back(0); } } itob(n-1,binary); }