Advertisement
Guest User

Untitled

a guest
Mar 30th, 2017
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4.  
  5. int main(){
  6.  
  7. int n; //исходное число
  8. cin >> n; //вводим его
  9.  
  10. int *bin = new int; //динамический массив для хранения двоичных разрядов
  11. int i = 0; //счетчик
  12.  
  13. //нахожу остаток от 2, т.е. получаю двоичное значение
  14. while(n>0){
  15. bin[i] = n%2;
  16. n/=2;
  17. i++;
  18. }
  19.  
  20. sort(bin, bin+i); //использую эту сортировку, т.к. не охота писать вручную
  21. int result=0; //выходное значение
  22.  
  23. //перевод в десятичную систему
  24. for(int j=i-1; j>=0; j--){
  25. result += bin[j]*pow(2,j);
  26. }
  27.  
  28. cout << result; //выводим
  29. delete [] bin; //удаляем массив
  30. return 0;
  31. }
  32.  
  33. 1010 -> 0101 -> 1010
  34.  
  35. #include <iostream>
  36. #include <iomanip>
  37.  
  38. using namespace std;
  39.  
  40.  
  41. int main(int argc, const char * argv[])
  42. {
  43. unsigned int N, n, max = 0;
  44. cin >> N;
  45. int size = 0;
  46. n = N;
  47. while(n) { ++size; n >>= 1; }
  48. max = n = N;
  49. for(int i = 0; i < size; ++i)
  50. {
  51. n = n>>1 | ((n&1) << (size-1));
  52. if (max < n) max = n;
  53. }
  54. cout << max;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement