Benim ciddi bir problemim var. Çok önemli numaralarımı tuttuğum bazı metin dosyalarım var - tüm önemli olanları! Ve iki, ve üçlü ..
Bu sayılar o kadar önemliydi ki, onları yeni çıkmış ondalık ya da ikili sayı sistemlerine emanet edemedim. Her numarayı aynı şekilde unary olarak kodladım:
+--+
| |
+---+ +----+ |
| | | |
+---+ +-------+
~/two.txt
Basit ve güvenilir: İki ASCII 2 sayısı için döngüler. Maalesef, bu şeyler zamanla birbirine karışmaya meyilli ve şimdi her dosyada kaç tane döngü olduğunu bulmakta zorlanıyorum. Elde çalıştığım bazı örnekler:
Bir:
+---+
| |
+--+ |
| |
+--+ |
| |
| |
| |
+--+ +--+
| |
+---------+
Üç:
+---------+
| +-----+ |
| | +-+ | |
| | | | | |
| | +-+ | |
| +-----+ |
+---------+
Dört:
+--------------+
| +--+ +--+ |
| | | | | |
+-|-----|-----|----+
| | | | | | | |
| +--+ +--+ +--+ |
+------------------+
+------------+
| |
+-----+ +-----+ |
| | | |
+-----|-----------+ | |
| | +--+ | | | |
+-+ +--|--|--+ +---------+
| | +-+ | | |
+------+ | | | |
+-------+ | |
|| | |
|+-----+
| |
+---+
Beş:
+--------+ +--------+ +--------+
| | | | | |
| +--|-----+ +--|-----+ |
| | | | | | | | | |
+-----|--+ +-----|--+ +--------+
| | | |
+--------+ +--------+
Döngüleri saymama yardım eder misin?
İşte kurallar:
- Her şeyi ASCII kodlu ünitede sakladığım için, alan verimliliği benim için çok önemli. Bu nedenle, bu kod golf. Bayt cinsinden en küçük program kazanır.
- Döngüler +, -, | karakterleriyle çizilir. Döngüdeki her köşe açık bir şekilde çizilir: tam olarak + üstündeki ve altındaki karakterlerden biri |, tam olarak sağa veya sola bir - olacaktır. İki + işareti asla bitişik değildir.
- Teller üst üste ve altından geçebilir. İplikler geçtiğinde, "üst" şeridin hemen her iki tarafında "alt" şeridi görebileceksiniz.
- Programınız (stdin'den veya bir işlev parametresinden) döngünün dizgi gösterimini almalı ve bir sayı (stdout'a ya da bir dönüş değeri olarak) üretmelidir.
- Çizgi uzunlukları, döngü çiziminde aynı olmayabilir ve her bir çizgi üzerinde takip eden boşluklar olabilir.
- Girişte en az bir döngü olduğunu varsayabilirsiniz.
Sana güveniyorum!
+
mi?