Câu hỏi này được lấy cảm hứng từ câu trả lời này . Thật trùng hợp, tôi đã từng sử dụng phép nhân của người Ethiopia khi tôi còn là một đứa trẻ, nhưng chưa bao giờ biết tên của phương pháp này cho đến gần đây.
Phép nhân của người Ê-ti-ô là một phương pháp nhân các số nguyên chỉ sử dụng phép cộng, nhân đôi và chia đôi.
Phương pháp:
- Lấy hai số để được nhân và viết chúng xuống ở đầu hai cột.
- Trong cột bên trái liên tục giảm một nửa số cuối cùng, loại bỏ mọi phần dư và viết kết quả bên dưới số cuối cùng trong cùng một cột, cho đến khi bạn viết giá trị 1.
- Trong cột bên phải liên tục nhân đôi số cuối cùng và viết kết quả bên dưới. dừng khi bạn thêm một kết quả trong cùng một hàng với nơi cột bên trái hiển thị 1.
- Kiểm tra bảng được tạo và loại bỏ bất kỳ hàng nào trong đó giá trị trong cột bên trái là chẵn. Tính tổng các giá trị trong cột bên phải vẫn tạo ra kết quả nhân hai số ban đầu với nhau.
Ví dụ: 17 x 34
17 34
Giảm một nửa cột đầu tiên:
17 34
8
4
2
1
Nhân đôi cột thứ hai:
17 34
8 68
4 136
2 272
1 544
Các hàng xuất hiện có ô đầu tiên là số chẵn, chúng tôi sẽ thực hiện điều này bằng cách đặt các số đó ở bên phải trong dấu ngoặc vuông:
17 34
8 [68]
4 [136]
2 [272]
1 544
Tính tổng các số còn lại trong cột bên phải:
17 34
8 [68]
4 [136]
2 [272]
1 544
=====
578
Vậy 17 nhân với 34, theo phương pháp của người Ê-ti-ô là 578.
Nhiệm vụ:
Mã golf có hai số từ 1 đến 1000 và thực hiện cùng bố cục và thuật toán, hiển thị sản phẩm bên dưới.
Phương thức nhập: Tuy nhiên, bạn chọn ...
Ví dụ đầu vào:
19 427
Kết quả đầu ra:
19 427
9 854
4 [1708]
2 [3416]
1 6832
======
8113
Xin lưu ý sự liên kết của các chữ số. Điều này là quan trọng nhất trong bố trí. Cũng lưu ý rằng dòng kép được đặt bằng các dấu bằng phải dài hơn hai ký tự so với câu trả lời chung và phải là trung tâm hợp lý.
Kiểm tra
Làm thế nào bạn sẽ được thử nghiệm này? Bằng cách cung cấp một chương trình của bạn bằng cách sử dụng hai số. Những số này có thể được trích xuất từ số ID người dùng của bạn (có thể lấy số này bằng cách di con trỏ lên hình đại diện của bạn trên cửa sổ trên cùng). Lấy số của bạn và lấy ba chữ số cuối cùng, đây sẽ là số B, lấy bất cứ thứ gì còn lại ở phía trước, đó sẽ là số A. Sau đó kiểm tra A lần B.
Ví dụ kiểm tra:
Số ID người dùng của tôi là 8555, vì vậy số của tôi là 8 và 555. Vì vậy, đầu ra của tôi sẽ giống như thế này:
8 [555]
4 [1110]
2 [2220]
1 4440
======
4440
Những hạn chế:
Không có toán tử nhân nào được phép lưu trong khi sử dụng "nhân đôi", như được đề cập trong thuật toán. Nói cách khác, nếu bạn đang sử dụng một toán tử như *, thì nó chỉ có thể được sử dụng để nhân 2 mà thôi.
Các tác phẩm không tuân thủ điều này sẽ không được xem xét và người dùng sẽ được hộ tống ra khỏi cơ sở với một hộp các tông chứa đầy đồ đạc của họ. Mỗi mục sẽ có mã, cộng với kiểm tra dựa trên số ID người dùng của bạn.
Đây là mã golf. Số byte ngắn nhất sẽ nhận được giải thưởng, vinh quang và sự ngưỡng mộ của các đồng nghiệp của họ ... (Và có thể là một chiếc Lamborghini ... Tôi đã nói "có thể"!)
*
hoặcx
), nhưng không thể phát hiện xem phép nhân có được sử dụng hay không. Ngoại trừ phần đó, thử thách là thú vị.