Pazartesi Mini Golf: Her pazartesi (umarım!) Yayınlanan bir dizi kısa kod golf sorusu.
(Üzgünüm yine geciktim; temelde dün ve bugün bilgisayarımdan uzak durdum.)
Biz programcılar (özellikle kod tutucular) kesinlikle rastgele tamsayı dizilerini severiz. Şu anda yaklaşık 200.000 girişe sahip olan bu dizilere adanmış bir sitemiz bile var . Bu mücadelede, bu dizilerin bir başka setini daha uygulayacağız.
Meydan okuma
Buradaki zorluk, bir N tamsayısı alan ve bir sonraki 10 tamsayının bu şekilde belirlendiği bir 10 tamsayısı dizisi çıktısı veren bir program veya işlev yazmaktır :
- 1'den başla.
Bir önceki tamsayının tabanındaki 10 D gösterimi için:
- Eğer D 0 olduğunda, mevcut tamsayıya bir ekleyin.
- Aksi takdirde, geçerli tamsayıyı D ile çarpın .
ayrıntılar
- 0 < N <2 31 olduğunu varsayabilirsiniz .
- Her tam sayıyı, 10'dan daha küçük bir sayıya ulaşana kadar giriş numarasından başlayarak sırayla çıkarmalısınız.
- Çıktı, bir dizi veya boşluk, virgül, yeni satır veya bunların bir kombinasyonu ile ayrılmış bir dize olabilir.
- Bir arka alan ve / veya yeni satır izin verilmekte, fakat olmayan bir arka virgül.
- Hiçbir zaman baştaki sıfır olmamalıdır.
Örnekler
Örnek 1: 77
Bu örnek oldukça basittir:
77 = 1*7*7 = 49
49 = 1*4*9 = 36
36 = 1*3*6 = 18
18 = 1*1*8 = 8
Böylece uygun çıktı 77 49 36 18 8
.
Örnek 2: 90
İşte biz var:
90 = 1*9+1 = 10
10 = 1*1+1 = 2
Yani çıktı olacaktı 90 10 2
.
Örnek 3: 806
Soldan sağa denklemleri okuyun:
806 = 1*8+1*6 = 54 (((1*8)+1)*6)
54 = 1*5*4 = 20
20 = 1*2+1 = 3
Çıktı olmalı 806 54 20 3
.
Test-vakalar
Her satırdaki ilk sayı giriş, tam satır beklenen çıktıdır.
77 49 36 18 8
90 10 2
249 72 14 4
806 54 20 3
1337 63 18 8
9999 6561 180 9
10000 5
8675309 45369 3240 25 10 2
9999999 4782969 217728 1568 240 9
1234567890 362881 2304 28 16 6
Referans olarak, işte 10'dan 100'e kadar olan sonraki tam sayılar:
Current | Next
--------+-----
10 | 2
11 | 1
12 | 2
13 | 3
14 | 4
15 | 5
16 | 6
17 | 7
18 | 8
19 | 9
20 | 3
21 | 2
22 | 4
23 | 6
24 | 8
25 | 10
26 | 12
27 | 14
28 | 16
29 | 18
30 | 4
31 | 3
32 | 6
33 | 9
34 | 12
35 | 15
36 | 18
37 | 21
38 | 24
39 | 27
40 | 5
41 | 4
42 | 8
43 | 12
44 | 16
45 | 20
46 | 24
47 | 28
48 | 32
49 | 36
50 | 6
51 | 5
52 | 10
53 | 15
54 | 20
55 | 25
56 | 30
57 | 35
58 | 40
59 | 45
60 | 7
61 | 6
62 | 12
63 | 18
64 | 24
65 | 30
66 | 36
67 | 42
68 | 48
69 | 54
70 | 8
71 | 7
72 | 14
73 | 21
74 | 28
75 | 35
76 | 42
77 | 49
78 | 56
79 | 63
80 | 9
81 | 8
82 | 16
83 | 24
84 | 32
85 | 40
86 | 48
87 | 56
88 | 64
89 | 72
90 | 10
91 | 9
92 | 18
93 | 27
94 | 36
95 | 45
96 | 54
97 | 63
98 | 72
99 | 81
100 | 3
Burada 10000'e genişletilmiş bu listeyi bulabilirsiniz .
puanlama
Bu kod-golf , bayt cinsinden geçerli en kısa koddur. Tiebreaker ilk önce son bayt sayısına ulaşan gönderime gidiyor. Kazanan, 19 Ekim Pazartesi günü seçilecek. İyi şanslar!
Düzenleme: Kazanan, @isaacg , 14 byte için yine Pyth kullanarak tebrikler !
|*GHhG
bir bayttan tasarruf eder?H*GHhG
.