Kontrol pelayaran memiliki 3 opsi berbeda untuk menggerakkan gagang untuk mengatur kecepatan yang ingin Anda kendarai.
- Menuju Anda: Menambahkan 1 kecepatan.
- Ke atas: Meningkatkan kecepatan ke kelipatan 10 berikutnya (mis. 20 -> 30, 32 -> 40)
- Bawah: Menurunkan kecepatan ke kelipatan 10 berikutnya (mis. 20 -> 10, 32 -> 30)
Memasukkan
- 2 bilangan bulat: yang pertama adalah kecepatan awal dan yang kedua adalah kecepatan yang Anda inginkan, baik non-negatif dan dalam bentuk apa pun yang Anda suka (array, dua argumen, dll.)
Tugas
- Tentukan cara optimal menggunakan pegangan untuk mencapai kecepatan yang diinginkan dan cetak gerakan dalam urutan yang benar.
Aturan
- Jika Anda memiliki pilihan antara menarik ke arah Anda dan naik ke atas (seperti dari 39 hingga 40), Anda dapat memilih salah satu opsi, tetapi tetap dengan apa pun yang Anda pilih untuk kasus serupa
- Anda dapat menggunakan 3 simbol yang berbeda (lebih disukai terlihat) untuk membedakan antara gerakan dalam output (T, U dan D misalnya).
- Simbol dapat dipisahkan oleh garis baru, spasi, dll. Tetapi tidak harus
Berikut ini beberapa kasus uji:
start speed, desired speed --> output
30, 40 --> U
30, 43 --> UTTT
43, 30 --> DD
51, 39 --> DDDTTTTTTTTT
29, 30 --> T or U
29, 50 --> TUU or UUU
12, 12 -->
Ini adalah kode-golf sehingga jawaban tersingkat dalam byte menang.
code-golf
arithmetic
aTastyT0ast
sumber
sumber
Jawaban:
JavaScript (ES6),
918475 byteDisimpan 4 byte berkat @Neil
Penggunaan
0
untukD
,1
untukT
, dan2
untukU
.sumber
(s/10+1|0)*10 == (s/10|0)*10+10 == s-s%10+10
.f(37,43)
,2111
tetapi kode baru Anda kembali111111
.Jawa,
144139Disimpan 5 byte berkat Kevin.
Tidak disatukan
sumber
int
variabel untuk10
dans/10
Anda dapat mempersingkatnya dengan 5 byte:void o(int s,int e){int t=10,x=s/t;System.out.print(s>e?"D":s<e?x<e/t?"U":"T":"");if(s!=e)o(s>e?x*t-(s%t<1?t:0):s<e?x<e/t?(x+1)*t:s+1:0,e);
Batch, 175 byte
Cukup mudah kali ini. Mengambil input sebagai parameter baris perintah, yang disimpan ke dalam
s
dand
.e
adalahd
bulat turun ke beberapa sebelumnya 10. Jikas
lebih besar darid
, maka kita jelas perlu memanggild
sampais
menjadi lebih rendah darid
. Kalau tidak, kita perlu memeriksa apakahs
lebih rendah darie
; jika demikian, kita dapat memanggilu
sampais
samae
. Pada titik inis
sekarang antarae
dand
dan kami hanya bisa memohont
sampai kita mencapaid
. Saya melihat ke dalamfor
loop tetapi mereka menggunakan titik akhir inklusif sehingga akan menjadi terlalu bertele-tele.sumber
Python, 76 byte
sumber
min(b%10,(b-a)%99)
tidak akan selalu bekerja, misalnya(a,b)=(132,33)
b:
C, 156 byte
Tidak Disatukan:
sumber