Quay lại danh sách thử thách
Trung bình 0 đã giải Tỷ lệ chấp nhận 0%

Chữ số gốc (Digital Root)

Cộng các chữ số lặp lại cho đến khi chỉ còn một chữ số.

Bạn sẽ học được gì

  • Cộng các chữ số lặp lại đến khi còn một chữ số
  • Kết hợp vòng lặp trong với điều kiện dừng bên ngoài
  • Nhận ra công thức tắt với modulo 9

Đề bài

Xem bản gốc (English)

Cộng tất cả các chữ số của n. Nếu kết quả có nhiều hơn một chữ số, tiếp tục cộng các chữ số của kết quả đó. Lặp lại quá trình này cho đến khi chỉ còn một chữ số.

Cài đặt hàm digital_root(n).

Đầu vào

n: Một số nguyên dương.

Đầu ra

Trả về chữ số cuối cùng còn lại.

Ràng buộc

1 ≤ n ≤ 10¹⁸

Ví dụ

Ví dụ 1
Đầu vào:
n = 999

Kết quả mong đợi:
expected = 9
Đầu vào:
long long n = 999;

Kết quả mong đợi:
long long expected = 9;
Đầu vào:
long n = 999;

Kết quả mong đợi:
long expected = 9;

Giải thích

9 + 9 + 9 = 27, sau đó 2 + 7 = 9.

Ví dụ 2
Đầu vào:
n = 38

Kết quả mong đợi:
expected = 2
Đầu vào:
long long n = 38;

Kết quả mong đợi:
long long expected = 2;
Đầu vào:
long n = 38;

Kết quả mong đợi:
long expected = 2;

Giải thích

3 + 8 = 11, sau đó 1 + 1 = 2.

Hướng tiếp cận

Hãy tự thử trước, sau đó mở từng gợi ý một.

Gợi ý 1

Cộng các chữ số lặp đi lặp lại rồi cuối cùng số sẽ co lại còn 1 chữ số.

Gợi ý 2

Bạn có thể mô phỏng quá trình cộng lặp cho đến khi giá trị nhỏ hơn 10.

Gợi ý 3

Hãy chú ý với đầu vào rất lớn; thao tác chính là duyệt qua các chữ số nhiều lần.

Độ phức tạp mong đợi

thời gian O(d log n), bộ nhớ phụ O(1)

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.