Asalkan digit antara 0 dan 9 (inklusif), fungsi / subrutin Anda harus mencetak semua angka antara -100 dan 100 (inklusif) yang berisi digit yang diberikan.
Sebagai contoh:
Input: 9
Output: -99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -79 -69 -59 -49 -39 -29 -19 -9 9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99
Aturan:
- Anda tidak dapat menggunakan string (dengan cara apa pun mereka direpresentasikan dalam bahasa pilihan Anda) atau array char. (Kecuali untuk mencetak jawaban ke konsol.)
- Anda tidak dapat menggunakan array.
Mencetak:
Nilai = panjang subrutin / fungsi (spasi tidak akan dihitung)
Jawaban dengan skor terendah menang.
Spasi TIDAK akan dihitung. Harap format kode Anda dengan benar!
Beberapa jawaban menggunakan ekspresi reguler, yang mungkin melanggar aturan no string, seperti yang ditunjukkan oleh beberapa anggota. Jawaban-jawaban ini tidak akan diterima.
Silakan uji kode Anda dengan 0
sebelum memposting.
Jawaban:
Spasi, 834 karakter (0 jika Anda mengurangi spasi putih)
Gunakan penerjemah ini untuk mengujinya.
Ini membutuhkan waktu 4 jam kerja keras dan debugging yang mengerikan untuk dibuat. Tapi sudah selesai!
EDIT : Teks yang dapat dipilih disediakan dengan trik HTML. Jika Anda menyalin dan menempelkannya dari sini ke tempat lain, harap periksa apakah Anda mendapatkan tepat
[space][tab][linefeed][linefeed][linefeed]
di akhir dengan 100 atau 101 baris (tergantung apakah editor Anda menghitung atau tidak baris baru jika yang terakhir diakhiri dengan umpan baris).Jika Anda tidak dapat menggunakannya dengan cara ini, dengan mempertimbangkan space as
S
, linefeed asL
dan tab asT
, dan garis putus-putus setelahL
's, di sini adalah:sumber
Bash + utils - 20
Atau 21 byte jika dalam skrip
Untuk menjalankan skrip:
sumber
grep
bukanbash
ataush
. Ini utilitas lain!JavaScript 133 - 1 = 132
Tentunya tidak mungkin ada yang salah dengan versi ini sekarang ...?
sumber
for(i=-100,r=prompt();101>i;i++)(i+'').match(r)&&console.log(i)
.alert(RegExp(9).test(99))
yang hanya berdasarkan angka, juga kembalitrue
karena sistem pengetikan berbasis JavaScript yang longgar. Fungsi-fungsinya bekerja dengan angka-angka seolah-olah mereka adalah string tetapi masih angka ... Jika Anda mengubah kode untuk membacar=RegExp(x=+prompt());for(i=-100;101>i;i++)r.test(i)&&console.log(i);console.log(typeof(x));console.log(typeof(i))
dan mengeksekusi itu, tipe terakhir dari respons akan ditampilkanx
dani
sebagai angka ... Ergo, saya tidak menggunakan string ...GolfScript [24 byte]
Deskripsi:
DEMO: http://golfscript.apphb.com/?c=MwoKYDp4OzIwMSx7MTAwLX0le2B4Py0xPn0sYA%3D%3D
sumber
Ruby: 92 karakter
Versi yang dapat dibaca:
Contoh dijalankan:
Uji coba:
sumber
0
ujian.K - 45 char
Tidak memenangkan penghargaan apa pun, tetapi K golfing kurang terwakili. K tidak mendapatkan yang lebih cantik dengan jarak yang tepat, jadi saya akan membiarkannya apa adanya, karena K menjadi sangat pilih-pilih tentang ruang putih mana yang penting dan mana yang tidak.
Dijelaskan:
a:100-!201
- Buat daftar dari 0 hingga 200 inklusif, lalu kurangi dari 100. Sekarang kita memiliki angka dari -100 hingga 100 inklusif, tetapi mundur dari spesifikasi pertanyaan. Kami selalu dapat memperbaikinya nanti, jadi untuk saat ini kami hanya akan menetapkan inia
._ _abs
- Ambil dasar nilai absolut dari angka-angka ini, karena untuk alasan apa pun K berpikir bahwa itu_abs
akan memberikan hasil floating point. Untungnya, lantai mereka mengubahnya kembali menjadi bilangan bulat.10_vs'
- Perluas setiap'
bilangan bulat ( ) sebagai nomor basis 10 (_vs
singkatan dari "vector from skalar"). Perhatikan bahwa kami tidak harus menggunakan masing-masing operator'
pada fungsi di atas karena mereka beroperasi pada atom.@[...;100;0,]
- Ubah item dalam daftar kami di indeks 100 (daftar kosong, yang merupakan hasil dari perluasan 0 ke basis 10) oleh fungsi0,
, yang menambahkan nol ke depan. Tanpa koreksi ini, fungsi ini akan gagal pada input 0.&x in'
- Sekarang, kembalikan indeks (&
) di manax
digit dalam (_in
) masing-masing ('
) dari ekspansi yang kami buat dengan hati-hati di atas.|a@
- Akhirnya, gunakan indeks ini untuk mengindeksa
, dan membalik daftar ke dalam urutan yang benar.Penggunaannya jelas, meskipun semoga berhasil mendapatkan penerjemah K. (Ada implementasi open source di pada Github yang dapat Anda kompilasi.)
sumber
pesta
5549 karakter:(tidak termasuk spasi putih di sekitar
&&
)Menjalankannya dengan mengatakan:
akan menghasilkan:
sumber
;
s ke baris baru, dan menyimpan 2 poin.PHP 67 byte:
Ya, ada panggilan 'tegar', tapi saya hanya menggunakan nomor!
Ini adalah versi 'ungolfed':
Agar ini berfungsi, Anda dapat mengujinya di sini: http://writecodeonline.com/php/
Ingatlah untuk menambahkan
$_GET[n]='<number>';
ke awal kode.Atau, pada lampu atau server xampp, Anda dapat membuat halaman dan mengaksesnya di browser, dengan parameter
?n=<number>
setelah nama file.sumber
Mathematica 28
Maaf, saya tidak bisa menolak.
:)
Petunjuknya adalah: "Asalkan digit antara 0 dan 9 (inklusif), fungsi / subrutin Anda harus mencetak semua angka antara -100 dan 100 (inklusif) yang berisi digit yang diberikan."
Berikut ini mencetak semua nomor tersebut secara berurutan.
Sebagai bonus khusus, ia mencetak angka-angka dalam kisaran yang sama yang tidak mengandung angka yang diberikan. :)
sumber
Upaya pertama saya di sini, jadi mungkin saya melakukan beberapa hal yang salah, tolong permisi;)
Jadi, saya tidak yakin apakah saya harus menambahkan seluruh kelas atau hanya logika di dalamnya.
Java - 199 karakter
Di sini bentuk yang lebih mudah dibaca:
Saya kira ide dasarnya tidak terlalu buruk, tetapi membutuhkan terlalu banyak pengecualian, untuk akhirnya berhasil untuk semua kasus ...: /
sumber
0
:(intx
... tidak itu:int x
?C -
104107114 karakter - 0 =104107114Tidak Disatukan:
sumber
0
berisi0
.R 87
93Ini peningkatan:
(Berpotensi) Lebih mudah dibaca, dengan catatan:
sumber
0
.0
. Apakah Anda mencoba dengan versi terbaru ini? Saya menggunakan R 3.0.1.Prolog: 75
sumber
test.pl
file, mulaiswipl
, dimasukkanconsult('test')
dan dimasukkanf(9)
. Tetapi itu hanya kembalifalse
.C menjawab dalam 98 karakter
Ini adalah salah satu hal terseksi yang pernah saya kodekan
Versi yang lebih lama, dengan 104 karakter non-spasi putih:
"Bekerja untukku" menggunakan GCC dan CLANG.
sumber
GNU coreutils (44)
di mana
tr
digunakan untuk mengonversi baris baru ke spasi, danecho
menyediakan satu baris baru akhir.sumber
Javascript 116
sumber
J - 27 karakter
Semua spasi putih dapat dilepas dengan aman, artinya 27 karakter. Angka negatif dalam output akan memiliki
_
untuk tanda negatif: ini hanya cara J menulis angka negatifnya.Dijelaskan:
V & (i: 100)
- Bind (&
) himpunan angka dari -100 hingga 100 inklusif (i:100
) sebagai argumen yang tepat dari kata kerja utama (V
). Argumen tunggal dari seluruh kata kerja akan disalurkan ke sisi kiri.(U"0 # ])
- Gunakan hasil kata kerja diU
atas setiap angka dari argumen kanan ("0
) untuk memilih (#
) item dari argumen kanan (]
).(e. 10 #.^:_1 |)
- Diberi angka yang akan diuji sebagai argumen kiri dan angka yang akan diperiksa sebagai argumen yang benar, perluas dalam basis 10 (10 #.^:_1
) nilai absolut dari angka (|
), dan periksa apakah digit merupakan elemen dari ekspansi itu (e.
).Pemakaian:
sumber
-
Negate / Minus. K memungkinkan Anda menggunakan tanda negatif "secara alami" dalam angka, dan secara kebetulan K mengeluarkan sintaksis sintaksis yang misterius. Jika itu benar-benar menjengkelkan Anda, pekerjaan dalam pilihan Anda;8!:1
,'4.0'8!:2
atau'-'I.@:=&'_'}":
, biaya 7, 11, dan 16 karakter masing-masing untuk membuat program yang dihasilkan fungsi bukan sebuah ekspresi, menurut hitungan saya.Groovy, 127
Tanpa string (kecuali untuk menghasilkan spasi di antara angka-angka), tidak ada array char atau array lainnya, tidak ada regex. Diuji dengan 0. Output:
-100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100
sumber
Javascript - 108
Tidak yakin apakah jawaban javascript yang ada akan dipertimbangkan karena menggunakan regex, jadi saya membuatnya tanpa itu:
Dapat juga disingkat menjadi 101 jika variabel x dimasukkan langsung, seperti:
Ini pada dasarnya memeriksa apakah nilai absolut operasi div atau mod sama dengan digit (yang juga berfungsi untuk 100).
sumber
x=1
, ini gagal untuk mencetak-100
atau100
.1
bekerja dengan baik, tapi sekarang0
cetakan1
,2
,3
... Maaf untuk menjadi pengacau di sini.prompt()
mengembalikan string, jadi saya menambahkan * 1 dan semoga saja ok sekarang. Terima kasih atas saran AndaparseInt(j/10)
dapat diganti dengan(0|j/10)
yang lebih pendek dan menghindari string implisit. Konversi string-ke-angka (tidak dapat dihindari) diprompt()*1
tidak dapat disingkat sebagai+prompt()
. (Atau lebih singkat lagi, ubah fungsi untuk memulaifor(x=+prompt(i=-100);...
.GW Basic: 107 karakter tidak termasuk spasi
Menggunakan satu digit untuk nomor garis membantu dan menghapus spasi berarti tidak ada kebutuhan untuk memiliki banyak pernyataan pada suatu garis lebih dari sekali untuk menjaga angka mencapai 10.
sumber
GROOVY, 71
Hasil dalam
sumber
Javascript 96
Menggunakan bitwise atau:
sumber
Haskell,
8675 (78 dengan spasi putih yang diperlukan)Tidak Disatukan:
sumber
a 0=[-100....
dana d=[b|b<-....
Anda dapat menyingkirkanif then else
dan menyimpan beberapa byte.Python - 172 karakter
Untuk menguji dalam Python:
sumber
VBA 121
(tidak ada spasi atau
Sub
definisi yang dihitung):sumber
0
?IIf(d = 0, IIf(d = n Mod 10, " " & n, "")
perl, 117 dengan karakter spasi tidak berarti dihapus
Saya pikir Anda sedang mencari sesuatu yang lebih seperti ini. Membaca dari stdin, menghasilkan satu baris per pertandingan. Tidak ada regexps, array (atau set atau hashes atau apa pun yang merupakan array di bawah penutup) atau string, implisit atau sebaliknya, kecuali string yang diteruskan untuk dicetak:
misalnya:
sumber
F #
8792 - 7menambahkan 5 karakter karena 0 tidak ditangani dengan benar. (Nilai satu digit semua akan dikembalikan.)
sumber
Ini adalah pertama kalinya saya bermain golf kode. Ini terlihat cukup menarik. Saya tidak bisa menang, tetapi saya mencoba dan ingin menunjukkan apa yang bisa saya lakukan.
Python: 104 (89 jika saya bisa mulligan impor) - jika hasilnya harus dicetak persis seperti yang ditunjukkan pada contoh
Python: 71 - jika output dapat dilakukan di luar fungsi dan satu-satunya batasan untuk output adalah tidak ada angka yang melanggar dicetak
sumber
JavaScript 125 char
Maaf untuk beberapa pengeditan, saya mengalami kesulitan melakukan ini dari ponsel saya :)
sumber
Dogelang, 42 karakter bukan spasi
Sama seperti solusi Python saya, baru saja dikonversi ke dogelang .
sumber