Witam
mam problem z zadaniem Czarodziejskie lusterko. Program działa lecz sędzia nie przyjmuje mojego rozwiązania. Czy mógłby mi ktoś powiedzieć gdzie jest błąd? Poniżej mój kod:
#include <iostream>
using namespace std;
string DecToBin (unsigned long long int liczbaDziesietna)
{
unsigned long long int wynik;
string liczbaDwojkowaLiteraPOM, liczbaDwojkowaLitera;
while(liczbaDziesietna!=0)
{
wynik = liczbaDziesietna%2;
liczbaDziesietna = liczbaDziesietna/2;
liczbaDwojkowaLiteraPOM += wynik + 48;
}
int dlugosc=liczbaDwojkowaLiteraPOM.length();
for (int j=0; j<dlugosc; j++)
{
liczbaDwojkowaLitera += liczbaDwojkowaLiteraPOM[dlugosc-j-1];
}
return liczbaDwojkowaLitera;
}
string odbicieLiczby (string liczbaDwojkowaLitera)
{
string odwroconaLiczbaDwojkowa;
int dlugosc = liczbaDwojkowaLitera.length();
for(int j=0; j<dlugosc; j++)
{
odwroconaLiczbaDwojkowa += liczbaDwojkowaLitera[dlugosc-j-1];
}
return odwroconaLiczbaDwojkowa;
}
long int potega(long int podstawa, int wykladnik)
{
int wynik = 1;
for (int i = 0; i<wykladnik; i++)
wynik*=podstawa;
return wynik;
}
unsigned long long int BinToDec (string odwroconaLiczbaDwojkowa)
{
unsigned long long int odwroconaLiczbaDziesietna=0, odwroconaLiczbaDziesietnaPOM=0;
int dlugosc = odwroconaLiczbaDwojkowa.length();
for (int i=0; i<dlugosc; i++)
{
odwroconaLiczbaDziesietnaPOM = odwroconaLiczbaDwojkowa[dlugosc-i-1]-'0';
odwroconaLiczbaDziesietna += odwroconaLiczbaDziesietnaPOM * potega(2,i);
}
return odwroconaLiczbaDziesietna;
}
int main()
{
unsigned long long int liczbaDziesietna;
while(cin >> liczbaDziesietna)
{
cout << BinToDec(odbicieLiczby(DecToBin (liczbaDziesietna))) << endl;
}
return 0;
}