cpp-347Đọc toàn bộ đề miễn phí

Căn số học của một số

Căn số học (digital root) là kết quả của việc cộng tất cả chữ số của một số; nếu tổng vẫn còn

C++Cơ bản12 phút

Tiến độ của tôi ở bài này

Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

mathnumber-theorydigitsentry-ramp

Kiến thức tiên quyết: cpp-basics, while loop.

Nội dung đề bài

Mô tả bài toán

Căn số học (digital root) là kết quả của việc cộng tất cả chữ số của một số; nếu tổng vẫn còn nhiều hơn một chữ số thì lặp lại thao tác cộng đó cho đến khi chỉ còn đúng một chữ số. Phép biến đổi này là bước luyện tập tốt cho vòng lặp lồng nhau và phép chia lấy dư.

Yêu cầu

Cho số nguyên dương n, hãy in ra căn số học của n. Nói cách khác, hãy cộng các chữ số của n cho tới khi thu được một chữ số duy nhất rồi in chữ số đó.

Quy ước nộp bài

Nộp chương trình solution.cpp đọc dữ liệu từ stdin và in kết quả ra stdout. In đúng một chữ số trên một dòng duy nhất.

Input

  • Một dòng duy nhất chứa số nguyên dương n (1 <= n <= 1000000000).

Output

  • Một chữ số duy nhất từ 1 đến 9 là căn số học của n.

Ràng buộc

  • 1 <= n <= 1000000000.
  • Phải cộng lặp lại cho tới khi còn một chữ số, không dừng ở lần cộng đầu tiên.
  • Thời gian cho mỗi bộ dữ liệu là 1 giây.

Ví dụ 1

Input

38

Output

2

Ví dụ 2

Input

9

Output

9

Giải thích

Với dữ liệu vào:

Ta có 3 + 8 = 11, rồi 1 + 1 = 2, nên kết quả là:

Với dữ liệu vào:

Vì 9 đã là một chữ số, kết quả là:

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.

Góp ý & báo lỗi bài tập

Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.

Nhóm Zalo