Untuk golf kode ini, Anda akan menerima input dari urutan fib onacci, yaitu, urutan Fibonacci normal tetapi dengan satu nomor yang salah. Lihat, urutannya fibbing ! Mengerti?:D
Tugas Anda adalah mencari tahu nomor mana yang salah, dan mencetak indeks (berbasis 0) dari nomor itu.
Sebagai contoh:
Input : 1 1 2 9 5 8 13
Output: 3
Input : 8 13 21 34 55 80
Output: 5
Input : 2 3 5 5 13 21
Output: 3
Spesifikasi:
- Urutan dapat dimulai dari nomor berapa pun.
- Dua angka pertama dari input akan selalu benar.
- Kode terpendek (jumlah karakter) menang.
8
salah karena tidak sama9+5
Jawaban:
GolfScript (18 karakter)
Kunci untuk menjaga kekurangan ini adalah ? (Temukan).
sumber
~]:^,
J,
3023sumber
Golfscript,
3128262523sumber
APL (19)
Penjelasan:
k←⎕
: simpan input pengguna dik
2+/k
: jumlah setiap pasangan elemen dik
(yaitu1 1 2 3
->1+1 1+2 2+3
->2 3 5
)1↓1⌽k
: putark
ke kanan dengan 1 dan kemudian jatuhkan elemen pertama (yaitu1 1 2 3
->2 3 1
)≠
: temukan tempat di mana daftar ini tidak sama1⍳⍨
: temukan lokasi yang pertama1
dalam daftar ini (lokasi nomor yang salah)1+
: tambahkan 1 untuk mengkompensasi elemen yang dijatuhkansumber
K, 32
sumber
dc,
3632dc
adalah kalkulator terbalik-Polandia, jadi jelas Anda perlu memasukkan angka dalam urutan terbalik;)sumber
Javascript (
6968616055)(60)
(61)
(68)
(69)
sumber
JavaScript, 70
sumber
Ruby, 66
Upaya pertama saya di program Ruby (agak) rumit:
sumber
gets.split
dengan$*
(ARGV
) untuk mengambil input sebagai argumen baris perintah alih-alih pada aliran input standar. Ruang antarap
dan$*
kemudian juga bisa dihapus dengan aman.Awk: 55
sumber
Python, 74
Saya punya solusi ini dulu, tetapi Doorknob menjawab pertanyaan tentang format input tepat sebelum saya sempat mempostingnya:
Python, 66
Mengasumsikan input yang dipisahkan baris baru.
sumber
Matlab / Oktaf, 39 byte
Terima kasih kepada Stewie Griffin karena telah menghemat satu byte! (
-
instread of~=
)Ini adalah fungsi anonim yang menginput array dan menghasilkan angka.
Cobalah online!
sumber
Python (90)
sumber
Mathematica 59
Karena input yang dibatasi ruang diperlukan,
StringSplit
perlu digunakan. Berikut ini mengasumsikan bahwa input tersebut dalam bentuk stringi
.sumber
VB.net (77)
Dengan asumsi angka sudah dalam IEnumerable (Of Integer).
sumber
Haskell, 48
sumber
JS, 52B
sumber
Jelly , 11 byte
Cobalah online!
sumber
Kotlin , 77 byte
Yg diperindahkan
Uji
sumber
QBIC , 31 byte
Penjelasan
Saya tidak yakin apakah ini diizinkan; urutan dimasukkan satu istilah pada satu waktu, dan program dibatalkan karena kesalahan, bukan setelah memasukkan seluruh urutan.
sumber