Nhà toán học điên này sở hữu một bộ sưu tập lớn các con số, và do đó, không gian mà anh ta để lại khá hạn chế. Để cứu một số người, anh ta phải gấp số nguyên của mình, nhưng tiếc là anh ta thực sự lười biếng. Nhiệm vụ của bạn, nếu bạn muốn giúp anh ta, là tạo ra một hàm / chương trình có thể gấp một số nguyên dương cho trước cho số người điên của chúng tôi.
Làm thế nào để gấp một số nguyên?
Nếu nó chia đều cho tổng các chữ số của nó, chia nó cho tổng các chữ số của nó. Nếu nó không đáp ứng yêu cầu đó, hãy lấy phần còn lại của nó khi chia cho tổng các chữ số của nó. Lặp lại quá trình cho đến khi kết quả đạt được 1
. Số nguyên gấp là số lượng thao tác bạn phải thực hiện. Hãy lấy một ví dụ (giả sử 1782
):
Lấy tổng các chữ số của nó :
1 + 7 + 8 + 2 = 18
.1782
là số chia hết cho18
, nên số tiếp theo là1782 / 18 = 99
.99
không chia hết cho9 + 9 = 18
, do đó chúng ta lấy phần còn lại :99 % 18 = 9
.9
rõ ràng là chia hết cho9
, vì vậy chúng tôi chia nó và thu được1
.
Kết quả là 3
, bởi vì 3 thao tác được yêu cầu để đạt được 1
.
Quy tắc và thông số kỹ thuật
Một số số nguyên có thể có tổng các chữ số bằng
1
, chẳng hạn như10
hoặc100
. Chương trình của bạn không cần xử lý những trường hợp như vậy. Điều đó có nghĩa là, bạn sẽ được đảm bảo rằng số nguyên được cung cấp làm đầu vào không có tổng các chữ số bằng1
và không có thao tác nào với số nguyên đã cho sẽ dẫn đến một số có tổng các chữ số1
(ngoại trừ1
chính nó là " Mục tiêu"). Ví dụ, bạn sẽ không bao giờ nhận được10
hoặc20
làm đầu vào.Đầu vào sẽ là một số nguyên dương cao hơn
1
.Lỗ hổng mặc định áp dụng.
Bạn có thể lấy đầu vào và cung cấp đầu ra theo bất kỳ giá trị trung bình tiêu chuẩn nào .
Các trường hợp thử nghiệm
Đầu vào -> Đầu ra 2 -> 1 5 -> 1 9 -> 1 18 -> 2 72 -> 2 152790 -> 2 152 -> 3 666 -> 3 777 -> 3 2010 -> 3 898786854 -> 4
Đây là một chương trình cho phép bạn hình dung quá trình và thử nhiều trường hợp thử nghiệm hơn.
Đây là môn đánh gôn , vì vậy mã ngắn nhất trong mỗi ngôn ngữ (tính bằng byte) sẽ thắng!
8987868546
là một đầu vào hợp lệ, nó sẽ phá vỡ công cụ kiểm tra của bạn và cũng có rất nhiều (nếu không phải tất cả) các câu trả lời ...
898786854
, không 8987868546
(bạn đã thêm một 6
ở cuối)
8987868546
không phải là 1 ( Quy tắc 1 đã gặp ) và 8987868546
là số nguyên dương cao hơn 1 ( Quy tắc 2 đã gặp ).