Monday Mini-Golf: Serangkaian pertanyaan kode-golf pendek , diposting (mudah-mudahan!) Setiap hari Senin.
(Maaf saya terlambat lagi; saya jauh dari komputer saya pada dasarnya kemarin dan hari ini.)
Kami programmer (terutama pegolf-kode) pasti suka urutan bilangan bulat sewenang-wenang. Kami bahkan memiliki seluruh situs yang didedikasikan untuk urutan ini yang saat ini memiliki sekitar 200.000 entri. Dalam tantangan ini, kami akan menerapkan serangkaian rangkaian ini lagi.
Tantangan
Tantangan Anda adalah menulis sebuah program atau fungsi yang menggunakan bilangan bulat N , dan mengeluarkan urutan bilangan bulat 10, di mana setiap bilangan bulat berikutnya ditentukan dengan cara ini:
- Mulai dari 1.
Untuk setiap digit D dalam representasi basis 10 integer sebelumnya:
- Jika D adalah 0, tambahkan satu ke integer saat ini.
- Jika tidak, kalikan bilangan bulat saat ini dengan D .
Detail
- Anda dapat berasumsi bahwa 0 < N <2 31 .
- Anda harus mengeluarkan setiap bilangan bulat dalam urutan, mulai dengan nomor input, hingga angka kurang dari 10 tercapai.
- Outputnya bisa berupa array, atau string yang dipisahkan oleh spasi, koma, baris baru, atau kombinasi dari semuanya.
- Ruang trailing dan / atau baris baru diizinkan, tetapi bukan tanda koma.
- Seharusnya tidak pernah ada nol terkemuka.
Contohnya
Contoh 1: 77
Contoh ini cukup mudah:
77 = 1*7*7 = 49
49 = 1*4*9 = 36
36 = 1*3*6 = 18
18 = 1*1*8 = 8
Dengan demikian, output yang tepat adalah 77 49 36 18 8
.
Contoh 2: 90
Di sini kita memiliki:
90 = 1*9+1 = 10
10 = 1*1+1 = 2
Jadi hasilnya akan 90 10 2
.
Contoh 3: 806
Baca persamaan dari kiri ke kanan:
806 = 1*8+1*6 = 54 (((1*8)+1)*6)
54 = 1*5*4 = 20
20 = 1*2+1 = 3
Output seharusnya 806 54 20 3
.
Kasus uji
Angka pertama di setiap baris adalah input, dan baris penuh adalah output yang diharapkan.
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
Sebagai referensi, inilah bilangan bulat berikutnya yang tepat dari 10 hingga 100:
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
Anda dapat menemukan daftar ini diperluas menjadi 10.000 di sini .
Mencetak gol
Ini adalah kode-golf , jadi kode terpendek yang valid dalam byte menang. Tiebreaker pergi ke pengiriman yang mencapai jumlah byte terakhirnya terlebih dahulu. Pemenang akan dipilih Senin depan, 19 Oktober. Semoga beruntung!
Sunting: Selamat kepada pemenang Anda, @isaacg , menggunakan Pyth lagi untuk 14 byte !
|*GHhG
menghemat satu byte lebih?H*GHhG
.