Viết chương trình Python để cộng lặp lại các chữ số của một số nguyên dương cho đến khi kết quả có một chữ số
Giải trình
Giải pháp mẫu. -
Mã Python
def add_digits[num]:
return [num - 1] % 9 + 1 if num > 0 else 0
print[add_digits[48]]
print[add_digits[59]]
Đầu ra mẫu
3 5
Sơ đồ
Trực quan hóa việc thực thi mã Python
Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực thi chương trình nói trên
Chúng tôi bắt đầu bằng cách chia số thành các chữ số và sau đó thêm tất cả các chữ số vào biến tổng. Để ngắt chuỗi ta sử dụng các toán tử sau
Toán tử modulo % được sử dụng để trích xuất các chữ số từ một số. Sau khi bỏ chữ số ta áp dụng phép chia để rút gọn số
Các phương pháp khác nhau để tìm tổng các chữ số của một số trong Python
Sử dụng các phương thức str[] và int[]
Để chuyển đổi một số thành một chuỗi, hãy sử dụng hàm str[]. Để chuyển đổi một chuỗi chữ số thành một số nguyên, hãy sử dụng hàm int[]
Chuyển đổi số thành một chuỗi, lặp qua từng chữ số trong chuỗi và thêm vào tổng các chữ số trong mỗi lần lặp
Luồng thuật toán
Bước 1. Thu thập đầu vào của người dùng
Bước 2. Tạo một biến để giữ kết quả
Bước 3. Chuyển đổi số thành một chuỗi
Bước 4. Viết một vòng lặp cho mỗi chữ số trong một số
Bước 5. Chuyển đổi chữ số thành một số nguyên và thêm nó vào tổng
Bước 6. Gọi hàm và in kết quả
Mã số
# Function to get sum of digits def getSum[n]: sum = 0 for digit in str[n]: sum += int[digit] return sum n = 569 print[getSum[n]]
đầu ra
Sử dụng phép lặp
Ta sẽ sử dụng vòng lặp để tính tổng các chữ số của một số. Các vòng lặp được sử dụng để thực thi liên tục một đoạn mã cụ thể. Một số câu lệnh lặp là vòng lặp for, while và do-while
Để tìm chữ số ngoài cùng bên phải của một số nguyên, hãy chia số nguyên đó cho 10 cho đến khi nó bằng 0. Cuối cùng, phần còn lại sẽ là chữ số ngoài cùng bên phải. Sử dụng toán tử còn lại " phần trăm " để nhận lời nhắc. Chia thương thu được cho 10 để được tất cả các chữ số của một số. Để tìm thương số, chúng tôi sử dụng “//”
Luồng thuật toán
Bước 1. Tạo hàm tìm tổng sử dụng tham số n
Bước 2. Khai báo một biến sum để lưu tổng các chữ số
Bước 3. Tạo một vòng lặp sẽ chạy cho đến khi n lớn hơn 0
Bước 4. Đối với phần còn lại được trả về, hãy thêm biến tổng [n phần trăm 10]
Bước 5. Thay đổi n thành n/10
Bước 6. Thu thập phản hồi từ người dùng
Bước 7. Gọi hàm được xác định trước đó và chuyển đầu vào làm đối số
Bước 8. In tổng các giá trị được trả về bởi hàm
Mã số
# Function to get the sum of digits def getSum[n]: sum = 0 while [n != 0]: sum = sum + [n % 10] n = n//10 return sum n = 569 print[getSum[n]]
đầu ra
Sử dụng đệ quy
Đệ quy là quá trình xác định một vấn đề hoặc giải pháp cho một vấn đề theo một phiên bản đơn giản hơn của chính nó. Hàm tương ứng được gọi là hàm đệ quy. Việc sử dụng đệ quy loại bỏ yêu cầu về vòng lặp trong lập trình
Thực hiện theo thuật toán để có mô tả kỹ lưỡng về cách thức hoạt động của phần mềm
Luồng thuật toán
Bước 1. Tạo hàm tìm tổng các chữ số với tham số n để tính tổng
Bước 2. Xác định xem n có nhỏ hơn 10 không;
Bước 3. Nếu không, hãy chia số đó cho 10 và tìm số dư [n phần trăm 10]
Bước 4. Gọi đệ quy hàm và chuyển [n/10] làm tham số
Bước 5. Thêm phần còn lại và giá trị được trả về bởi hàm
Bước 6. Thu thập đầu vào của người dùng
Bước 7. Gọi hàm tổng các chữ số để tìm tổng các chữ số của một số, chuyển đầu vào dưới dạng tham số
Mã số
# sum of digits in number. def sumDigits[no]: return 0 if no == 0 else int[no % 10] + sumDigits[int[no / 10]] # Driver code n = 569 print[sumDigits[n]]
đầu ra
Sử dụng phương thức Sum[]
Phương thức sum[] dùng để tính tổng các chữ số của một số trong python trong danh sách
Chuyển đổi số thành một chuỗi bằng cách sử dụng str[], sau đó tách chuỗi và chuyển đổi nó thành một danh sách các số bằng các phương thức strip[] và map[] tương ứng. Sau đó, tính tổng bằng phương thức sum[]
Luồng thuật toán
Bước 1. Tạo hàm tìm tổng các chữ số với tham số n để tính tổng
Bước 2. Số được chuyển thành chuỗi thông qua phương thức str[]
Bước 3. Sau đó, chuỗi được sọc và chuyển đổi thành danh sách các chữ số của số đã cho thông qua phương thức strip[] và map[] tương ứng