Trò chơi số được nối
Viết hàm / chương trình lấy 2 tham số nguyên tham số nguyên hoặc biến số nguyên , số bắt đầu và số lần lặp tối đa. Mã phải thực hiện ví dụ trò chơi sau để tạo một số mới và lặp lại cho đến khi số đó là một chữ số còn lại. ví dụ.
3 7 2 = (3 + 7) & (7 + 2) = 10 9
1 0 9 = (1 + 0) & (0 + 9) = 1 9
1 9 = (1 + 9) = 10
1 0 = (1 + 0) = 1
Về cơ bản, lấy từng chữ số riêng lẻ và thêm nó vào hàng xóm của nó, sau đó nối thêm kết quả của lần bổ sung tiếp theo.
Số lần lặp tối đa là để bảo vệ các vòng lặp vô hạn và khi đạt đến mức tối đa, mã sẽ kết xuất 5 bước số cuối cùng. Đầu ra tương tự sẽ xảy ra khi kết thúc bằng cách đạt đến một chữ số. Nếu ít hơn 5 bước xảy ra, chỉ xuất các số hợp lệ.
Đầu ra sẽ xuất hiện như ( Step: Number) bao gồm 5 bước cuối cùng của các bước đã hoàn thành hoặc kết thúc:
func(3541, 50) sẽ tạo ra định dạng đầu ra chính xác này:
6: 1411
7: 552
8: 107
9: 17
10: 8
func(3541, 5) sẽ sản xuất:
1: 895
2: 1714
3: 885
4: 1613
5: 774
Toàn bộ tính toán là:
1: 895
2: 1714
3: 885
4: 1613
5: 774
6: 1411
7: 552
8: 107
9: 17
10: 8
Nếu có ít hơn 5 bước, chỉ cần in các bước đã thực hiện.
Chỉ sử dụng libs tích hợp, các tham số có thể từ bất cứ đâu (bất cứ điều gì dễ dàng nhất cho ngôn ngữ bạn chọn). Không có giới hạn về kích thước số nguyên tối đa và nếu có tràn, hãy để nó bị sập.
Do điều này không quá khó từ quan điểm giải đố, tôi sẽ đưa ra cho đến Chủ nhật ngày 25, 8 giờ tối (UTC + 8) để các bài nộp được xem xét cho câu trả lời được chấp nhận, tại thời điểm ngắn nhất trong bất kỳ ngôn ngữ nào sẽ là người chiến thắng.
BIÊN TẬP:
Xin chúc mừng Howard, chiến thắng với câu trả lời 48 GolfScript .
Đặc biệt đề cập đến bến thứ 2 với câu trả lời 66 APL .
Yêu thích cá nhân của tôi (thiên về JavaScript) là câu trả lời của core1024 .
func(3541, 5)nên in 5 bước hay 10?