4, 8, 15, 16, 23, 42
Tulis program yang menampilkan urutan angka ini tanpa batas. Namun, The Numbers tidak boleh muncul di kode sumber Anda di mana pun.
Berikut ini bukan program Java yang valid untuk menampilkan Angka karena Angka muncul dalam kode sumbernya:
class TheNumbers {
public static void main(String[] args) {
for(int n = 0;;) System.out.println(
n == 4 ? n = 8 :
n == 8 ? n = 15 :
n == 15 ? n = 16 :
n == 16 ? n = 23 :
n == 23 ? n = 42 : (n = 4)
);
}
}
Definisi "Bilangan tidak boleh muncul dalam kode sumber Anda" adalah sebagai berikut:
- Anda tidak boleh menggunakan angka 4.
- Anda tidak boleh menggunakan angka 8.
- Anda tidak boleh menggunakan angka 1 diikuti oleh angka 5.
- Anda tidak boleh menggunakan angka 1 diikuti oleh angka 6.
- Anda tidak boleh menggunakan angka 2 diikuti oleh angka 3.
Jika bahasa Anda mengabaikan karakter tertentu yang dapat ditempatkan di antara angka, itu bukan pengganti yang valid. Jadi misalnya jika bahasa Anda mengartikan literal 1_5
sebagai 15
, ini akan dihitung sebagai angka 1 diikuti oleh angka 5.
Basis alternatif termasuk dalam pembatasan, jadi misalnya:
- Biner 100 tidak dapat digunakan sebagai pengganti 4.
- Oktal 10 tidak dapat digunakan sebagai pengganti 8.
- Heksadesimal F tidak dapat digunakan sebagai pengganti 15.
Oleh karena itu, berikut ini adalah program Java yang valid (tetapi tidak sangat terinspirasi) untuk menampilkan The Numbers karena The Numbers tidak muncul dalam kode sumbernya:
class TheNumbers {
public static void main(String[] args) {
for(int n = '*';;) {
System.out.println(n -= '&');
System.out.println(n *= 2);
System.out.println(n += 7);
System.out.println(++n);
System.out.println(n += 7);
System.out.println(n += 19);
}
}
}
Perhatikan bahwa dalam program itu, '*'
dan '&'
diganti untuk bilangan bulat 42 dan 38, karena jika tidak angka 4 dan 8 akan muncul dalam kode sumbernya.
Definisi "menghasilkan urutan tanpa batas" terbuka untuk interpretasi. Jadi, misalnya, sebuah program yang menghasilkan mesin terbang semakin kecil sampai mereka "tak terbatas" kecil akan valid.
Kudos jika Anda dapat menghasilkan urutan dalam beberapa cara yang pada dasarnya tidak mengkodekan setiap angka.
- Turunkan ke formula. Kesan saya adalah tidak ada satu tapi mungkin ada atau bisa dipalsukan.
- Memperbaiki generator pseudo-acak untuk mengembalikan urutan.
Ini adalah kontes popularitas, jadi jadilah kreatif. Jawaban dengan suara terbanyak pada tanggal 26 Maret adalah pemenangnya.
This isn't an interesting question, IMHO, since the solution is pretty trivial. Please post in the sandbox next time.
akan jauh lebih baik daripada This is a stupid question.
, tapi itu hanya pendapat pribadi saya.