Module: Operasi Bit (C++)


Problem

13 /13


Guru matematik Yuri Petrovich

Problem

Guru matematik legenda Yuri Petrovich menghasilkan permainan lucu dengan nombor. Iaitu, mengambil integer arbitrari, dia menterjemahkannya ke dalam sistem nombor binari, mendapatkan beberapa urutan sifar dan satu, bermula dengan satu. (Contohnya, nombor perpuluhan\(19_{10} = 1\cdot2^4+0\cdot2^3+0\cdot2^2+1\cdot2^1+1\cdot2^0 \ )  dalam sistem binari akan ditulis sebagai 10011 2.) Kemudian guru mula mengalihkan digit nombor binari yang terhasil dalam kitaran (supaya digit terakhir menjadi yang pertama, dan semua yang lain dianjakkan satu kedudukan ke kanan), menulis keluar jujukan sifar dan satu yang terhasil dalam lajur — dia perasan bahawa tanpa mengira pilihan nombor awal, urutan yang terhasil mula berulang dari saat tertentu. Dan, akhirnya, Yuri Petrovich menemui maksimum nombor yang ditulis dan menterjemahkannya semula ke dalam sistem nombor perpuluhan, memandangkan nombor ini adalah hasil manipulasi yang dilakukan. Jadi, untuk nombor 19, senarai jujukan ialah:
10011
11001
11100
01110
00111
10011

dan hasil daripada permainan itu akan menjadi nombor \(1\cdot2^4+1\cdot2^3+1\cdot2^2+0\cdot2^1+0\cdot2^0 = 28_{ 10} \)

Memandangkan permainan yang dicipta dengan nombor memerlukan lebih banyak imaginasi guru, dengan itu mengganggunya daripada bekerja dengan pelajar sekolah yang sangat berbakat, anda diminta untuk menulis program yang akan membantu Yuri Petrovich mendapatkan keputusan permainan tanpa pengiraan manual yang membosankan.
 
Input:
Fail input mengandungi satu integer N (0<=N<=32767).
Output: 
Program anda harus mencetak pada fail output satu integer sama dengan hasil permainan.

Contoh
# Input Output
1 1 1