Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.77 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #include <string>
  3. #include <math.h>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     freopen ("input.txt", "r", stdin);
  10.     freopen ("output.txt", "w", stdout);
  11.     system("color 0B");
  12.     int a, b;
  13.     cin >> a;
  14.     b = a;
  15.     vector<int> v, sv;
  16.     while(a != 1)//перевод в 2ичную систему // после НЕ переворачиваем, чтоб считать было легче
  17.     {
  18.         a /= 2;
  19.         if (a * 2 == b)
  20.         {
  21.             v.push_back(0);
  22.         }
  23.         else
  24.         {
  25.             v.push_back(1);
  26.         }
  27.         b /= 2;
  28.     }
  29.     v.push_back(1);
  30.     int ro = v.size();
  31.     int ma = 0, tima = 0, stwo = 1;//1)максимальное число 2)временное максимальное число 3)степень двойки для домножения
  32.     for (int i = 0; i < ro; i++)
  33.     {
  34.         sv.push_back(v[i]);
  35.     }
  36.     for (int i = 1; i <= ro; i++) //перебираем каждый вариант перестоновки
  37.     {
  38.  
  39.         for (int j = 0; j < ro; j++)
  40.         {
  41.             v[j] = sv[((j + i)%ro)];
  42.             if(j != 0)
  43.                 stwo *= 2;
  44.             tima += (stwo * v[j]);
  45.             //cout << v[j];// для выводв всех вариаций чисел в 2ичной системе
  46.         }
  47.        // cout << " " << tima << " " << ma; // для проверки максимумов, а также tima - число в 10чной системе
  48.        // cout << endl;// открывать при открытии хотябы одного из прошлых 2 комментариев
  49.         if (tima > ma) //проверка максимума
  50.             ma = tima;
  51.         tima = 0;
  52.         stwo = 1;
  53.     }
  54.     cout << ma;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement