Tính tổng các chữ số không sử dụng vòng lặp trong Python

nếu [Num > 0], kiểm tra xem num có lớn hơn 0 hay không. Đối với hàm đệ quy, việc đặt điều kiện trước khi sử dụng hàm đệ quy là rất quan trọng. Mặt khác, chúng tôi kết thúc trong thực thi vô hạn [Giống như Vòng lặp vô hạn]

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách tính tổng tất cả các chữ số của một số cho trước. Chúng ta sẽ tìm hiểu tất cả các phương pháp có thể để thực hiện chương trình này. Chúng tôi sẽ sử dụng các hàm đệ quy, vòng lặp và chuyển đổi kiểu cho chương trình này bằng Python

Trong chuyển đổi kiểu, chúng tôi sẽ chuyển đổi số nguyên thành chuỗi để nhận từng chữ số của số. Trước khi tiến về phía trước, bạn phải biết chuỗi là gì. Hãy xem bài viết này để biết về Chuỗi trong Python

Chương trình sẽ lấy một số nguyên làm đầu vào từ người dùng và in tổng các chữ số của nó. Ví dụ,

Đầu vào- 4321

Đầu ra- 10

Đầu vào- 821

Đầu ra- 11

Dưới đây là ba cách tiếp cận, bạn có thể sử dụng để in tổng các chữ số

  1. Sử dụng str[] và int[]
  2. Sử dụng phép lặp
  3. Sử dụng đệ quy

Chương trình Python 1. Sử dụng phương thức str[] và int[]

Trước khi bắt đầu với chương trình, trước tiên hãy tìm hiểu về các phương thức str[] và int[]. Chúng là các hàm tích hợp trong Thư viện Python

Phương thức str[] chuyển đổi và trả về đối tượng thành chuỗi và phương thức int[] chuyển đổi đối tượng thành số nguyên

thuật toán

Bước 1- Lấy đầu vào từ người dùng

Bước 2- Khai báo biến lưu tổng

Bước 3- Chuyển đổi số thành chuỗi

Bước 4- Chạy vòng lặp cho từng chữ số của một số

Bước 5- Chuyển đổi chữ số thành số nguyên và thêm nó vào tổng

Bước 6- In tổng

Chương trình Python

Nhìn vào chương trình để hiểu việc thực hiện phương pháp nêu trên

n=int[input["Enter number"]]

sum=0

for digit in str[n]:
    sum=sum+int[digit]

print["Sum of digits",sum]


Nhập số23451
Tổng các chữ số 15

Chương trình Python 2. Sử dụng phép lặp

Trong chương trình này, chúng ta sẽ sử dụng các câu lệnh lặp để tính tổng. Các vòng lặp được sử dụng để thực thi lặp đi lặp lại một đoạn mã cụ thể. Vòng lặp for, while và do-while là một số câu lệnh lặp

Để lấy chữ số ngoài cùng bên phải của một số chia cho 10 cho đến khi số đó trở thành 0. Phần còn lại cuối cùng sẽ là chữ số ngoài cùng bên phải. Để nhận lời nhắc sử dụng toán tử còn lại "%". Để nhận được tất cả các chữ số của một số chia thương số thu được cho 10. Để có được một thương số nguyên mỗi lần sử dụng "//"

thuật toán

Bước 1- Định nghĩa hàm Sum với tham số n

Bước 2- Khai báo biến sum để lưu tổng các chữ số

Bước 3- Xác định một vòng lặp sẽ chạy cho đến khi n khác 0

Bước 4- Thêm biến tổng vào phần còn lại được trả về bởi [n%10]

Bước 5- Cập nhật n thành n//10

Bước 6- Nhận đầu vào của người dùng

Bước 7- Gọi hàm Sum và truyền đầu vào dưới dạng tham số

Bước 8- In giá trị trả về của Sum

Chương trình Python

Nhìn vào chương trình để hiểu việc thực hiện phương pháp nêu trên

def Sum[n]:    
    sum = 0
    while [n != 0]: 
         sum = sum + [n % 10]
          n = n//10
    return sum    

n=int[input["Enter number"]]
print["Sum of digits",Sum[n]]


Nhập số342
Tổng các chữ số 9

Chương trình Python 3. Sử dụng đệ quy

Phương pháp trên cũng có thể được thực hiện bằng cách xác định hàm đệ quy. Các hàm đệ quy là những hàm gọi chính nó bên trong định nghĩa hàm. Sử dụng đệ quy sẽ loại bỏ vòng lặp trong mã

Thực hiện theo thuật toán để được giải thích chi tiết về hoạt động của chương trình

thuật toán

Bước 1- Xác định hàm sum_of_digits với tham số n để tính tổng

Bước 2- Kiểm tra xem n có nhỏ hơn 10 không, nếu đúng trả về n

Bước 3- Mặt khác, chia số cho 10 và tính phần còn lại [n%10]

Bước 4- Gọi hàm đệ quy và chuyển [n//10] làm tham số

Bước 5- Trả về tổng của phần còn lại và giá trị được hàm trả về

Bước 6- Lấy đầu vào từ người dùng

Bước 7- Gọi hàm sum_of_digits và truyền đầu vào dưới dạng tham số

Chương trình Python

Nhìn vào chương trình để hiểu việc thực hiện phương pháp nêu trên

def sum_of_digit[n]:
    if n< 10:
        return n
    else:
        return n%10 + sum_of_digit[n//10]

number = int[input["Enter number: "]]
# Function call and output display
print["Sum of digit is",sum_of_digit[number]]


Nhập số. 5421
Tổng các chữ số là 12

Phần kết luận

Chúng ta đã học được ba cách khác nhau để tính tổng các chữ số của một số trong Python. Chúng ta có thể sử dụng các phương thức của lớp str trong Python như str[] và int[] để chuyển đổi một số nguyên thành chuỗi và ngược lại

Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
7__
Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
0
15
06
15
07
15
08
15
09
15
08
15
11
15
08
15
13
15
08
Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
98
15
16

 

Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
7____904

Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
7
15
06

 

Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
7____908

Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
7____524

Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
26____932

15
32

 

15
28

Python3




15
29

15
30

 

15
31

15
32
15
33

Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
7_______535____536
15
37
Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
41
15
08
Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
41

Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
7____346
Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
17
15
44
15
45

15
6
15
35
15
48
15
37
15
50

15
6
15
52____548
15
37
15
07

15
6
15
4
15
58

15
59

_______560____561

15
60
Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
62

15
6
Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
67
15
66

15
60
Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
71

15
6

Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
7____571

Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
7____936
15
35

Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
7

15
76

15
77
15
35
15
37
Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
98
15
08
Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
41

 

15
83

15
84
15
37
15
86
15
07
15
08
15
09
15
08
15
11
15
08
15
13
15
08
Syntax1      |   Syntax2
----------------------------
goto label;  |    label:  
.                  |    .
.                  |    .
.                  |    .
label:          |    goto label;
98
15
96

Làm cách nào để tìm tổng các chữ số của một số trong Python mà không cần vòng lặp?

Chương trình Python .
tổng = 0
Str = input["Nhập số?" ];
cho tôi trong phạm vi [len [Str]]
tổng = tổng + [int[Str[i]]]
print["tổng các chữ số. %d"%[sum] ]

Làm cách nào để tìm tổng các chữ số của một số trong vòng lặp while của Python?

Chương trình tính tổng bằng Python .
Lấy giá trị của số nguyên và lưu trữ trong một biến
Sử dụng vòng lặp while, lấy từng chữ số của số và cộng các chữ số đó vào một biến
In ra tổng các chữ số của số

Làm cách nào để tìm tổng các chữ số của một số trong C mà không cần sử dụng vòng lặp?

Tổng các chữ số của một số trong C .
int main[] { int n, t, tổng = 0, dư;
printf["Nhập số nguyên\n"];
t = n;
trong khi [t. = 0] { dư = t % 10;
printf["Tổng các chữ số của %d = %d\n", n, sum];
trả về 0;

Chủ Đề