Hủy bỏ bất thường (từ Wolfram Alpha):
Hủy bỏ bất thường là "hủy" các chữ số của a và b trong tử số và mẫu số của một phân số a / b dẫn đến một phân số bằng với bản gốc. Lưu ý rằng nếu có nhiều nhưng số lượng khác nhau của một hoặc nhiều chữ số trong tử số và mẫu số thì có sự mơ hồ về việc hủy các chữ số nào, do đó, đơn giản nhất là loại trừ các trường hợp đó khỏi xem xét. Liên kết
Nói một cách đơn giản, hãy nói rằng bạn có một phần nhỏ a / b
. Nếu bạn có thể hủy bỏ các chữ số trong phân số để tạo một phân số khác c / d
bằng với gốc ( a / b = c / d
), hủy bỏ bất thường có thể được sử dụng để đơn giản hóa phân số.
Thách thức của bạn là tạo ra một chương trình hoặc hàm nhập chuỗi phân số ở dạng a/b
và xuất hoặc trả về giá trị trung thực nếu phân số có thể được đơn giản hóa bằng cách sử dụng hủy bỏ dị thường và ngược lại là giá trị giả. a
và b
sẽ luôn là số nguyên dương khác không. a
và b
sẽ luôn có hai hoặc nhiều chữ số. Ngoài ra, tất cả các chữ số từ một trong hai a
hoặc b
sẽ không bị hủy (Bạn sẽ không nhận được đầu vào 12/21
), ít nhất một chữ số từ a
và b
sẽ bị hủy mỗi lần (Bạn sẽ không nhận được đầu vào 43/21
) và kết quả cuối cùng sẽ không bao giờ 0
cho a
hoặc b
. Chương trình của bạn phải hủy bỏ tất cả các chữ số phổ biến giữa a
và b
(ví dụ: trong1231/1234
, bạn phải hủy bỏ a 1
, a 2
và a 3
). Nếu có nhiều khả năng hủy, trước tiên hãy chọn chữ số ngoài cùng bên trái (515/25 trở thành 15/2 chứ không phải 51/2).
Ví dụ:
Input Output Why
1019/5095 true Remove the 0 and the 9 from both sides of the fraction to get 11/55, which is equivalent.
16/64 true Remove the 6 from both sides, and get 1/4.
14/456 false Remove the 4s. 14/456 is not equal to 1/56.
1234/4329 false Remove the 2s, 3s, and 4s. 1234/4329 is not equal to 1/9.
515/25 false Remove the first 5 from each side. 15/2 is not equal to 515/25.
Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte sẽ thắng!