Pernahkah Anda ingin bertanya kepada kompiler "Mengapa?" Sebagian besar dari kita merasa frustrasi ketika kode tidak berfungsi sebagaimana mestinya. Karena itu Mathworks menerapkan fungsi kecil yang menyenangkan why,, yang menjawab pertanyaan. Untuk memberikan beberapa contoh dari MATLAB:
why
The programmer suggested it.
why
To fool the tall good and smart system manager.
why(2)
You insisted on it.
why(46)
Bill insisted on it.
Tugas Anda adalah mengimplementasikan whyfungsi dalam bahasa Anda. Fungsi harus bekerja dengan dan tanpa argumen input (sebagai alternatif, gunakan input 0atau -1). Fungsi harus dinamai why(atau, menulis why(n)dalam STDIN harus menghasilkan string yang sesuai untuk dicetak).
Jika tidak ada argumen yang diberikan, atau argumen itu nol atau negatif, string keluaran harus berupa frase acak dan valid. Jadi, harus ada fungsi why, why(), why(0)atau why(-1)yang kembali kalimat acak.
Jika argumen input, ndiberikan (argumen fungsi, bukan STDIN), output harus menjadi string ke-n (didefinisikan di bawah). Jadi, why(1)harus selalu menampilkan (mencetak / menampilkan) hasil yang sama.
Kalimat-kalimat dibangun sebagai berikut (Tipe 1, Tipe 2 dan Khusus). Semua kalimat diakhiri dengan !.
"Person" "ending" !
"Verb" "adjective" "Person" !
A list of special cases
Daftar orang:
Stewie
Peter
Homer
The programmer
The system manager
You
Daftar akhiran:
suggested it
insisted on it
did it
Daftar kata kerja adalah:
To fool
To satisfy
To please
Daftar kata sifat:
the smart
the bald
the tall
the rich
the stupid
Daftar kasus khusus:
How should I know?
Stop asking!
Don't ask!
Cara untuk memilih yang bernomor adalah:
Jenis kalimat:
Odd number => Type 1
Even number => Type 2
n % 7 = 0 => Type 3 (% is the modulus operator)
Nama: Nama ke-n didefinisikan menggunakan modulus (%).
n = 1: 1 % 7 => Stewie
n = 2: 2 % 7 => Peter
...
n = 6: 6 % 7 => You
n = 7: 7 % 7 => How should I know?
n = 11: 11 % 7 => The programmer
n = 14: 14 % 7 => Stop asking!
n = 21: 21 % 7 => Don't ask!
Akhir: Akhir n juga didefinisikan menggunakan modulus. Asumsikan akhir (1, 2 dan 3) terdaftar seperti (1 2 2 3). Karena angkanya selalu aneh, gunakan((n+1)/2 % 4)
n = 1: ((1+1)/2 % 4) => suggested it
n = 3: ((3+1)/2 % 4) => insisted on it
n = 13: ((13+1)/2 % 4) => did it
Kata sifat: Kata sifat n didefinisikan dengan menggunakan modulus. Karena angkanya selalu genap, gunakan:(n % 10)/2
n = 2: (2 % 10)/2 => Smart
n = 6: (6 % 10)/2 => The tall
...
Kata kerja: Kata kerja n juga didefinisikan menggunakan modulus. Asumsikan kata kerja (1, 2 dan 3) terdaftar seperti (1 2 2 3)Karena angkanya selalu genap untuk kata kerja, gunakan(n % 8) / 2
n = 2: (2 % 8)/2 => To fool
n = 4: (4 % 8)/2 => To satisfy
n = 6: (6 % 8)/2 => To satisfy
n = 8: (8 % 8)/2 => To please
Sekarang, cara membuat yang acak harus cukup sederhana, cukup pilih yang acak n.
Beberapa contoh:
why
You suggested it!
why
To fool the tall Homer!
why
Don't ask!
why(1)
Stewie suggested it!
why(14)
Stop asking!
why(8)
To please the rich Stewie!
Aturan golf kode standar berlaku. Pemenang akan dipilih satu minggu dari hari tantangan diposting.
/2bekerja. Itu memberikan nilai fraksional. 13juga harus insisted(14/2 = 7% 4 = 3 = ke-2 dari yang bersikeras).
the rich The programmeryang ditentukan the?
Thedan Todalam daftar Anda mungkin harus huruf kecil agar sesuai dengan contoh Anda ...
whyatauWHYdapat diterima?