Algorytm iteracyjny:
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
main()
{
string s = "";
int liczba, reszta;
cout << "Program zamienia podana liczbe dziesietna na liczbe binarna." << endl;
cout << "Podaj liczbe do zamiany" << endl;
cin >> liczba;
do {
reszta = liczba % 2;
s = char(reszta + 48) + s;
liczba = liczba / 2;
} while (liczba != 0);
cout << s << endl;
system("pause");
return 0;
}
Algorytm rekurencyjny:
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
void dec_to_bin(int liczba)
{
if(liczba>0)
{
dec_to_bin(liczba/2); //dzielimy przez dwa bez reszty (liczba maleje w kierunku zera -> patrz warunek przy if)
cout<<liczba%2; //wyświetlenie cyfry binarnej (operacja modulo) - zapisana jako
//druga operacja (po wywołaniu funkcji dec_to_bin) pozwoli
//na wyswietlenie znakow liczby binarnej w odpowiedniej kolejnosci
}
}
int main()
{
int liczba;
cout<<"Podaj liczbe: ";
cin>>liczba;
cout<<"Postac binarna liczby "<<liczba<<": ";
dec_to_bin(liczba);
cout<<endl;
system("pause");
return 0;
}