Tugas Anda adalah menulis program untuk mencetak jumlah kode ASCII dari karakter program itu sendiri. Anda tidak diperbolehkan membuka file apa pun (input apa pun seperti argumen baris perintah, input standar, atau file dilarang).
Program yang mencetak angka terendah (yaitu memiliki jumlah kode ASCII terendah) menang.
Berikut adalah contoh (bukan yang terpendek) dari program semacam itu yang ditulis dalam C:
#include <stdio.h>
int main(){
printf("4950");/*i*/
return 0;
}
(tidak ada baris baru setelah }
)
code-challenge
Alexandru
sumber
sumber
Jawaban:
wc, mencetak 0
Seseorang berkata "bahasa seperti kucing", jadi ...
File kosong:
Jalankan dengan
wc -c file.wc
. Pada 0 byte, saya pikir ini adalah pemenang dalam kategori 'tidak benar-benar bahasa pemrograman'.Juga
kucing, mencetak 80 (basis 13)
Tanpa menghentikan baris baru, angka 80 13 sama dengan 104 dalam desimal. Anda bisa lebih pendek dengan 60 17 (102 Desember), tapi saya pikir "base 13" akan lebih bernilai poin geek.
EDIT:
wc
Contoh baru , ini bisa dijalankan sebagai program.(Sebagaimana dikodekan dalam Latin-1 - ÿ adalah byte dengan nilai 255)
Jumlah byte adalah 2223, output adalah:
sumber
wc -c
dilarang dalam pertanyaan.0 0 0
(jika file dilewatkan sebagai file melarangnya, maka semua bahasa skrip adalah juga dilarang)wc
, -1 untuk kecurangan basis, +1 untuk membuat lelucon di basis 13.wc
adalah aplikasi, bukan bahasa.PHP, m4, dan bahasa seperti kucing lainnya: 150
Menemukan solusi ini menggunakan program Haskell sederhana untuk memaksakannya:
sumber
5!
5!
adalah 86, bukan 125.Brainf * ck, 255
Ini tidak akan mencetak angka 255, melainkan karakter ASCII 255.
Ini mungkin dianggap curang karena kompiler BF melompati ¤.
sumber
¤
itu curang, karena itu hanya komentar normal.Javascript, mencetak
94326902Ini adalah solusi quine pertama sejauh ini, kecuali saya tidak memahami yang Haskell dengan benar.
sumber
(function a(){b="("+a+")()";for(i=c=0;i<b.length;i++)c+=b.charCodeAt(i-0);alert(c)})()
PowerShell
mencetak 310.
sumber
Perl, 500
Ada dua tab di antara
say
dan500
. :)(Jalankan sebagai one-liner dengan
perl -E
, sejauh yang saya tahu ini sesuai aturan)sumber
Ruby, mencetak 380
Tidak ada baris baru setelah tanda kurung tutup.
sumber
PowerShell
mencetak 230, jelas.
sumber
PowerShell
mencetak 320.
sumber
J, 150
Dengan peringatan bahwa itu akan benar hanya 1/720 waktu.
sumber
Python, mencetak 781
Dua ruang.
sumber
Elemen, 220
Ini adalah bahasa ciptaan saya sendiri, dan didokumentasikan pada jawaban saya untuk pertanyaan lain di sini .
Berikut ini adalah langkah-langkah bagaimana cara kerjanya:
220
Mendorong nomor itu ke tumpukan. Kemudian ``outputs the top element of the stack. The
! `Kemudian melakukan logis bukan pada tumpukan kontrol (tumpukan terpisah), mengaturnya ke 1.sumber
PHP, mencetak 4440
sumber
PowerShell, mencetak 3902
Lihat ke baris yang saat ini dijalankan dan jumlah nilai-nilai titik kode
sumber
INTERCAL, 1572
Saya tidak percaya belum ada yang melakukan INTERCAL!
(Termasuk mengakhiri baris baru.) Program ini mencetak MDLXXII.
sumber
Perl, mencetak 690
Atau, jika kita dapat memposting satu kalimat (
perl -E
)Cetakan 570.
(Tidak ada baris baru)
sumber
JavaScript,
1750 900 860790alert(790)
(Pengembalian kereta (CR,
\r
atau\x0D
) setelah atau sebelum program)Program-program ini ditemukan dengan kekerasan.
Nilai yang lebih besar:
sumber
Java -128
Saya tahu membaca stdin tidak diperbolehkan tetapi saya ingin memberikan contoh bagaimana saya menghitung skor saya.
Kode saya menjumlahkan jumlah ASCII yang diteruskan pada stdin dan mencetak -128
Tidak membuntuti baris baru
sumber
Ruby, mencetak 300
Ada spasi dan tab antara
p
dan300
. Tidak ada baris baru.sumber
File kumpulan, 500
Juga, perhatikan dua ruang antara "ECHO" (huruf besar dengan sengaja) dan "500".
sumber
C, 1700
Aneh - belum ada yang memposting solusi C (tidak termasuk contoh dalam pertanyaan).
Tidak ada baris baru di akhir.
sumber
K (
923 796 795 746513)Saya tidak yakin apakah ini melanggar aturan atau tidak. Itu tidak menggunakan stdin, itu membuka dirinya sebagai vektor byte dan jumlah.
Pemakaian:
sunting 2012.05.08 - tidak perlu hsym pegangan file 2012.05.09 - menyelamatkan 1 poin dengan mengonversi ke byte alih-alih int
2012.05.17 - Dapat menyimpan banyak poin dengan membaca file sebagai bytestream daripada teks:
sumber
J, 198
dan
Ditemukan dengan kekuatan kasar. Di J tidak ada solusi char 1 atau 2, dan satu-satunya solusi char 3 adalah
150
. Kecuali ada bug dalam pencarian saya, tidak ada solusi 4-char lainnya.Dari saluran IRC #jsoftware, kami juga memiliki
<.%:10!20
429 dan quine yang menghitung sendiri+/a.i.2#(,{:)'+/a.i.2#(,{:)'''
pada 1706.sumber
SM 1160
dipanggil dengan gema dan blank, seluruh String, termasuk 7 blank,
echo 1160 | bc
memiliki bytesum 1160.150 bekerja untuk bc juga:
sumber
D, 9752
yang ini sebenarnya menghitungnya mirip dengan quine saya
sumber
Spasi, 369
Program 20 karakter ini mencetak angka 369, yang merupakan jumlah nilai ascii dari karakternya (yaitu Tab, Spasi, karakter Linefeed, di sini dilambangkan dengan T, S, L, masing-masing):
(369 = 7 * 9 + 8 * 32 + 5 * 10, terdapat 7 Tab, 8 Spaces, dan 5 Linefeeds.)
sumber
Haskell, 7518
Modifikasi kecil dari quine saya :
sumber
Brainf * ck, 253 (atau 252)
Perbaikan sedikit pada solusi Peter Olson:
Asalkan tidak dapat dicetak diperbolehkan, itu dapat ditingkatkan lebih lanjut dengan menambahkan
-
dan menggantiH
dengan kode ASCII 26.sumber
Scala 1090
println (1090)
sumber
Python, 5440
Kemenangan skor tertinggi, bukan?
Saya hanya berpikir saya akan tetap mempostingnya tapi itu solusi setengah jadi.
sumber