Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #include <string>
- #include <math.h>
- using namespace std;
- int main()
- {
- freopen ("input.txt", "r", stdin);
- freopen ("output.txt", "w", stdout);
- system("color 0B");
- int a, b;
- cin >> a;
- b = a;
- vector<int> v, sv;
- while(a != 1)//перевод в 2ичную систему // после НЕ переворачиваем, чтоб считать было легче
- {
- a /= 2;
- if (a * 2 == b)
- {
- v.push_back(0);
- }
- else
- {
- v.push_back(1);
- }
- b /= 2;
- }
- v.push_back(1);
- int ro = v.size();
- int ma = 0, tima = 0, stwo = 1;//1)максимальное число 2)временное максимальное число 3)степень двойки для домножения
- for (int i = 0; i < ro; i++)
- {
- sv.push_back(v[i]);
- }
- for (int i = 1; i <= ro; i++) //перебираем каждый вариант перестоновки
- {
- for (int j = 0; j < ro; j++)
- {
- v[j] = sv[((j + i)%ro)];
- if(j != 0)
- stwo *= 2;
- tima += (stwo * v[j]);
- //cout << v[j];// для выводв всех вариаций чисел в 2ичной системе
- }
- // cout << " " << tima << " " << ma; // для проверки максимумов, а также tima - число в 10чной системе
- // cout << endl;// открывать при открытии хотябы одного из прошлых 2 комментариев
- if (tima > ma) //проверка максимума
- ma = tima;
- tima = 0;
- stwo = 1;
- }
- cout << ma;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement