Thứ hai Mini-Golf: Một loạt các câu hỏi ngắn về môn đánh gôn , được đăng (hy vọng!) Vào mỗi thứ Hai.
(Xin lỗi tôi lại trễ một lần nữa; tôi đã rời khỏi máy tính của tôi về cơ bản cả ngày hôm qua và hôm nay.)
Chúng tôi lập trình viên (đặc biệt là những người chơi golf mã) chắc chắn thích các chuỗi số nguyên tùy ý. Chúng tôi thậm chí có toàn bộ trang web dành riêng cho các chuỗi này hiện có khoảng 200.000 mục. Trong thử thách này, chúng tôi sẽ triển khai một loạt các chuỗi này.
Thử thách
Thử thách của bạn là viết một chương trình hoặc hàm lấy một số nguyên N và xuất ra một chuỗi các số nguyên cơ sở 10, trong đó mỗi số nguyên tiếp theo được xác định theo cách này:
- Bắt đầu từ 1.
Đối với mỗi chữ số D trong biểu diễn cơ sở 10 của số nguyên trước đó:
- Nếu D bằng 0, thêm một vào số nguyên hiện tại.
- Nếu không, nhân số nguyên hiện bởi D .
Chi tiết
- Bạn có thể giả sử rằng 0 < N <2 31 .
- Bạn phải xuất từng số nguyên trong chuỗi, bắt đầu bằng số đầu vào, cho đến khi đạt được số nhỏ hơn 10.
- Đầu ra có thể là một mảng hoặc một chuỗi được phân tách bằng dấu cách, dấu phẩy, dòng mới hoặc kết hợp cả hai.
- Không gian dấu và / hoặc dòng mới được cho phép, nhưng không là dấu phẩy.
- Không bao giờ nên có bất kỳ số 0 hàng đầu.
Ví dụ
Ví dụ 1: 77
Ví dụ này khá đơn giản:
77 = 1*7*7 = 49
49 = 1*4*9 = 36
36 = 1*3*6 = 18
18 = 1*1*8 = 8
Vì vậy, đầu ra thích hợp là 77 49 36 18 8
.
Ví dụ 2: 90
Ở đây chúng tôi có:
90 = 1*9+1 = 10
10 = 1*1+1 = 2
Vì vậy, đầu ra sẽ là 90 10 2
.
Ví dụ 3: 806
Đọc các phương trình từ trái sang phải:
806 = 1*8+1*6 = 54 (((1*8)+1)*6)
54 = 1*5*4 = 20
20 = 1*2+1 = 3
Đầu ra nên 806 54 20 3
.
Các trường hợp thử nghiệm
Số đầu tiên trong mỗi dòng là đầu vào và dòng đầy đủ là đầu ra dự kiến.
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
Để tham khảo, đây là số nguyên tiếp theo thích hợp từ 10 đến 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
Bạn có thể tìm thấy danh sách này được mở rộng đến 10000 tại đây .
Chấm điểm
Đây là mã golf , vì vậy mã hợp lệ ngắn nhất tính bằng byte thắng. Tiebreaker đi đến trình mà đạt đến số byte cuối cùng của nó đầu tiên. Người chiến thắng sẽ được chọn vào thứ Hai tới, ngày 19 tháng 10. Chúc may mắn!
Chỉnh sửa: Xin chúc mừng người chiến thắng của bạn, @isaacg , sử dụng Pyth một lần nữa cho 14 byte !
|*GHhG
tiết kiệm một byte hơn?H*GHhG
.