Bu numberphile videoda bahsedilen "ikili, ancak ikişer" gösterimi temelinde , tek bir sayıyı girdi olarak alan ve ikiye izin verilen bir "ikili" sistemde bu sayının tüm varyasyonlarını çıktılayan bir işlev yazın .
kurallar
- Kod tam bir program değil, sadece bir işlev / yöntem olmalıdır
- Girdi, işleve tek parametre olarak iletilen bir tam sayıdır
- Çıktı, "ikili, ancak ikişerli" gösterimine dönüştürülen giriş numarasının tüm geçerli varyasyonlarıdır
- Çıktı, işlevin dönüş değeridir, ancak açık olduğu sürece (ör. 3 inç, 3 dize, virgül / boşlukla ayrılmış dize, dizi dizisi, vb.) Uygun olan herhangi bir biçimde olabilir, sıra önemsizdir
- Bir dilin sonucu elde etmek için yerleşik bir işlev içermesi olası bir durumda, izin verilmez
- Bayt cinsinden en kısa kod kazanır
Çıktının açıklaması
Örneğin, sayıyı geçtiyseniz, 9
bunu ikili olarak dönüştürebilirsiniz 1001
, ancak 2
her konumda s'ye izin verdiyseniz , bu tabloda gösterildiği gibi 201
(ie 2*4 + 0*2 + 1*1
) veya 121
(ie 1*4 + 2*2 + 1*1
) olarak da yazabilirsiniz :
+----+----+----+----+
| 8s | 4s | 2s | 1s |
+----+----+----+----+
| 1 | 0 | 0 | 1 |
| 0 | 2 | 0 | 1 |
| 0 | 1 | 2 | 1 |
+----+----+----+----+
Bu nedenle, geçilirse 9
, işlevinizin üç sayıyı döndürmesi gerekir 1001
, 201
ve 121
.
Biçim ve sipariş kadar uzun, çok açık olarak (yani alakasız [121,201,1001]
, "0201 0121 1001"
, ("1001","121","201")
bir girdi verildiğinde geçerli sonuçlardır 9
).
Örnekler
2
=>10, 2
9
=>1001, 201, 121
10
=>1010, 210, 202, 1002, 122
23
=>2111, 10111
37
=>100101, 20101, 100021, 20021, 12101, 12021, 11221