Tantangan Anda adalah menulis 5 program lengkap yang berbeda untuk 5 tugas berikut:
Mencetak
Hello, World!
Diberikan input dengan STDIN, menghasilkan faktorial, Anda dapat mengasumsikan bahwa input adalah bilangan bulat> = 0
Dengan bilangan bulat N, hitung jumlah bilangan prima <= N
Diberikan input dengan STDIN, output huruf yang digunakan dalam input. Misalnya: inputnya
Hello world
, Anda perlu outputhelowrd
. Perhatikan bahwa output dalam huruf kecil. Anda dapat mengasumsikan bahwa input selalu abjad dengan spasi putih, spasi putih diabaikan.Keluarkan berlian berikut persis seperti ini:
* *** ***** ******* ***** *** *
Semua tantangan ini mungkin sangat mudah, tetapi ada tangkapan. Setiap huruf yang Anda gunakan tidak dapat digunakan lagi di program lain. Ini tidak dilarang, tetapi akan memberi Anda penalti +8 byte . Misalnya, jika ini adalah program Anda untuk tugas pertama:
print("Hello, World!");
Maka Anda tidak dapat menggunakan surat-surat berikut (dalam huruf besar atau bentuk huruf kecil): p
, r
, i
, n
, t
, h
, e
, l
, o
, w
, d
di program lain. Jika Anda harus menggunakannya, Anda dapat 'membeli' setiap huruf untuk 8 byte. Jadi jika Anda ingin menggunakan surat itu l
lagi di program lain, Anda akan mendapat penalti 8 byte. Setelah Anda membayar penalti, Anda dapat menggunakan setiap huruf sebanyak yang Anda inginkan dalam program ini. Karakter lain tidak penting. Semua 5 program harus dalam bahasa yang sama.
Ini adalah kode-golf , jadi jumlah byte yang paling sedikit menang!
sumber
Jawaban:
CJam, 73 byte
Setiap baris adalah program lengkap. Cobalah secara online: 1 | 2 | 3 | 4 | 5
Peta surat
Jika Anda ingin (dan masing-masing program Anda cocok dalam satu baris), Anda dapat menggunakan program CJam ini untuk membuat peta surat untuk kiriman Anda sendiri.
sumber
Pyth, 90 byte
Percobaan pertama...
Tugas 1: 20 byte
Tugas 2, 3 byte
Tugas 3, 9 byte
Tugas 4, 6 + 8 = 14 byte
Tugas 5, 44 byte
sumber
osascript, 759 Bytes
Saya tahu ini akan menjadi banyak ketika saya mulai. oo
Tugas 1: 15 Bytes
Saya tahu bahwa itu akan menjadi buruk sejak saat ini.
Tugas 2: 64 + 8 * 4 = 96 Bytes
Astaga.
Tugas 3: 170 + 8 * 13 = 274 Bytes
Dennis g kalah besar.
Tugas 4: 225 + 8 * 13 = 329
...
Tugas 5: 45 Bytes
Jadi ya. Saya tahu saya akan kalah sejak awal. Tapi itu menarik, saya tertarik untuk mengetahui apakah ada cara untuk melakukan ini dalam karakter yang lebih sedikit. Peta karakter (seperti yang disediakan oleh Dennis):
Hitungan karakter di atas sedikit tidak aktif - baris baru membuatnya bermasalah, karena baris baru tidak dihitung.
CATATAN: Alasan untuk tidak menggunakan hal-hal seperti
a's characters
atau sejenisnya adalah bahwa'
karakter harus digunakan ketika mengeksekusi dari baris perintah osascript. Jika saya menggunakan'
, saya harus menggunakan\'
atau sesuatu yang serupa, yang tidak akan membantu saya sama sekali. Juga, itu hanya dikenali"
sebagai penangkap string, jadi saya agak kacau di sana juga. Tapi itu menyenangkan.sumber
NARS2000 APL, 144 byte (85 karakter)
Tugas 1, 21 byte (17 karakter)
Tugas 2, 10 byte (4 karakter)
Tugas 3, 22 byte (11 karakter)
Tugas 4, 53 byte (29 karakter)
Tugas 5, 38 byte (24 karakter)
sumber
⎕
untuk mencetak di luar REPL.Jelly , 46 byte (tidak bersaing)
Cobalah online! (Salin / rekatkan setiap cuplikan)
Rupanya, batasannya tidak membatasi bermain golf :) Hanya saran untuk yang terakhir, tentu saja, tolong.
sumber