Witam, jak można zoptymalizować poniższą funkcję zmieniającą Dec na Bin, aby działała szybciej? Na spoju cały czas wyrzuca przekroczenie czasu ? Zadanko: http://pl.spoj.com/problems/AL_05_01/ Trochę już ten kod uszczupliłem ale wciąż to samo. Zadanie polega na zamianie dec na bin, następnie odwroceniu kolejnosci liczby binarnej i wypisaniu jej jako dec. Dla małych liczb działa :)
Dzieki z góry za pomoc :)
Oto kod:
#include <cstdio>
#include <sstream>
#include <bitset>
std::string DecToBin(unsigned long long number) {
if ( number == 0 ) return "0";
if ( number == 1 ) return "1";
std::ostringstream oss;
while(number > 0) {
oss << number % 2;
number = number / 2;
}
return oss.str();
}
int main() {
unsigned long long n;
while(scanf("%llu", &n)) {
printf("%llu\n", std::bitset<64>( DecToBin(n) ).to_ulong());
}
return 0;
}