CÂU 2 – TÍNH TỔNG CÁC CHỮ SỐ VÀ SỐ LƯỢNG SỐ CHỮ SỐ CỦA N
Cho một số tự nhiên n (n≤101000). Tính tổng các chữ số của n và tính số lượng số chữ số của n (không dùng hàm len).
Ví dụ:
| INPUT | OUTPUT | GIẢI THÍCH |
| 123 | 6 | = 1 + 2 + 3 |
| 3 | Có 3 chữ số là: 1,2 và 3 |
Code hướng dẫn giải:
# Tính tổng và đếm số.
# Khởi tạo số nguyên nhập vào từ bàn phím.
so=int(input("Nhập n: "))
# Khởi tạo biến đếm để đếm số lượng số nhập vào
dem=1
# Khởi tạo biến tổng để tính tổng các số hạng
tong=0
# Khởi tạo số tạm để lưu số nhập vào cứ mỗi lần thực hiện phép chia thì tăng lên 1 đơn vị
# từ đây ta sẽ suy ra được mỗi lần chia thì số nhập vào có 1 chữ số.
sotam=so
# Khởi tạo biến lưu số để xuất ra số nhập vào ban đầu. Nếu không lưu biến số
# thì quá trình thực hiện các phép chia, số đó sẽ chia hết các lượt --> Số về 0.
luuso=so
# Điều kiện với số nhập vào là nguyên dương.
while so>0:
# Thực hiện chia phần đơn vị cho 10 liên tiếp đến hết và
# Ví dụ: Có số 456, 456/10 được 45 dư 6 -> lấy 6, 45/10 được 4 dư 5, 4/10 được 0 dư 4.
# và dùng biến tổng thực hiện cộng các số hàng đơn vị vào với nhau --> Tổng giá trị các số.
# Nghĩa là cộng các giá trị dư (nằm ở hàng đơn vị) lại với nhau.
tong+=so%10
# Số chia cho 10 để lấy lại phần nguyên và chia tiếp lấy nguyên đến hết thì dừng.
so//=10
# Số tạm > 9 thì mới chia, 0< số <9 là số có 1 chữ số: dem = 1 khởi tạo từ đầu rồi.
while sotam>9:
sotam/=10
dem+=1
print("Số",luuso,"có",dem,"chữ số",end=' ') # end=' ' --> kéo kết quả dòng dưới lên cùng hàng.
print("và tổng là",tong)


