Solamente con bucles, si se te está permitido usar múltiples bucles podrías guardar los valores en un array y despues reordenarlos.
Código C++:
Ver original#include<stdio.h>
main()
{
int n, i, temp[50];
printf("Ingrese un numero: "); for(i=0;n!=0;i++)
{
temp[i]=n%2;
n=n/2;
}
while (i>0){
i--;
}
return 0;
}