En una anterior entrada explicamos un poco sobre recursividad en C++ con el ejemplo del factorial de un número, en esta entrada utilizaremos la recursividad para llevar un número decimal a binario.
Te podría interesar: De sistema decimal a sistema binario en c++ y Java
#include <iostream>
using namespace std;
long abinario(long num){
if(num < 2)
return num;
else
return num%2 + (10 * abinario(num/2));
}
int main(){
long num, bin;
cin >> num;
bin = abinario(num);
cout << bin;
return 0;
}
En este caso la función recursiva viene dada por el resto del número decimal dividido entre 2, y esta función se ejecutará dentro de si misma y el parámetro num será dividido entre 2 por cada ejecución, esto hasta que num sera menor que 2, de esto ocurrir nos retornaría el valor de num.Es importante tener en cuenta la jerarquía de operadores, puesto que se ejecutarán primero las operaciones que estén entre paréntesis.
Por ejemplo sí nuestro número es 7 la operación sería:
1 + (10 * 1 + 1) = 1 + (11) concatenando los valores... 111
Entrada de prueba:
5
Salida:
101
También te podría interesar:
- Determinar si una palabra es palíndromo C++
- Operador xor binario en c++ - Disyunción exclusiva de dos números decimales
- 22 guías y libros gratis para aprender a programar en c++
- Valor Absoluto de un número en c++