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)