Pertanyaan
Kami ditangkap oleh robot tentara di stasiun ruang angkasa mereka. Pilot kapal ruang angkasa kami ada di penjara yang ada di level 1. Hanya ada satu cara bagaimana melarikan diri dan menyelamatkan pilot kapal ruang angkasa Anda. Itu berarti bergerak dari level N ke level 1. Namun karena sangat berisiko Anda harus pergi ke penjara dengan jumlah langkah seminimal mungkin.
Kondisi
Ada 4 cara bagaimana memindahkan:
- Pindah dari level N ke level N - 1
e.g. from 12 to 11 - Pindah dari level N ke level N +1
e.g. from 12 to 13 - Gunakan teleportasi dari level 2k ke level k
e.g. from 12 to 6 - Gunakan teleportasi dari level 3k ke level k
e.g. from 12 to 4
- Pindah dari level N ke level N - 1
Teleport hanya satu arah (Anda bisa mendapatkan dari 12 hingga 4 tetapi tidak mungkin untuk mendapatkan dari 4 hingga 12)
- Setiap tindakan mengambil satu langkah
Memasukkan
Masukan harus dibaca dari STDIN, atau alternatif terdekat dalam bahasa pemrograman Anda. Input terdiri dari bilangan bulat di nmana 1 <= n <= 10^8.
Keluaran
Output harus menjadi jumlah minimum langkah yang diperlukan untuk pergi dari nke level 1.
Contohnya
Level Minimum number of steps
1 0
8 3
10 3
267 7
100,000,000 25
Cobalah kode program yang akan membantu kita menyelamatkan pilot kapal ruang angkasa kita dari penjara dalam waktu singkat dan kembali ke rumah!
Kode terpendek akan menang!