4, 8, 15, 16, 23, 42
Bu sayı dizisini sonsuz olarak çıkaran bir program yazın. Ancak, Numaralar kaynak kodunuzda hiçbir yerde görünmemelidir.
Aşağıdakiler, Numaraları kaynak kodunda göründüğü için Numaraları çıkarmak için geçerli bir Java programı değildir:
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)
);
}
}
"Sayılar kaynak kodunuzda görünmemelidir" tanımı aşağıdaki gibidir:
- 4 rakamını kullanmamalısınız.
- 8 rakamını kullanmamalısın.
- 1 rakamını, ardından 5 rakamını kullanmamalısınız.
- 1 rakamını, ardından 6 rakamını kullanmamalısınız.
- 2 rakamını ve ardından 3 rakamını kullanmamalısınız.
Diliniz sayılar arasına yerleştirilebilecek belirli karakterleri görmezden gelirse, bu geçerli bir yer değiştirme değildir. Örneğin, eğer diliniz değişmez kelimesi 1_5
olarak yorumlarsa 15
, bu sayı 1 ve ardından sayı 5 olarak sayılır.
Alternatif bazlar kısıtlamaya dahil edilmiştir, örneğin:
- İkili 100, 4'ün yerine geçemez.
- Sekizli 10, 8'in yerine geçemez.
- Onaltılık F, 15 yerine kullanılabilir.
Bu nedenle, Numaralar kaynak kodunda görünmediğinden, Numaraları yazdırmak için geçerli (ancak çok esinlenilmemiş) bir Java programıdır:
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);
}
}
}
Bu programda '*'
ve '&'
tamsayılar 42 ve 38 ile değiştirildiğine dikkat edin, çünkü aksi takdirde 4 ve 8 rakamları kaynak kodunda görünecektir.
“Diziyi sonsuz olarak verir” tanımı , açıklamaya açıktır. Bu nedenle, örneğin, "sonsuz" küçük olana kadar gliflerin daha küçük hale gelmesini sağlayan bir program geçerli olacaktır.
Her sayı için temelde kodlama yapmayan bir şekilde diziyi oluşturabiliyorsanız Kudos.
- Bir formüle türetmek. Benim izlenimim, bir değil ama belki de var ya da sahte olabilir.
- Diziyi döndürmek için sözde rastgele bir üretecin düzeltilmesi.
Bu bir popülerlik yarışması, bu yüzden yaratıcı olun. 26 Mart'ta en çok oy alanların cevabı kazanan oldu.
This isn't an interesting question, IMHO, since the solution is pretty trivial. Please post in the sandbox next time.
daha iyi olurdu This is a stupid question.
, ama bu sadece benim kişisel görüşüm.