Trong chương trình này, trước tiên chúng tôi đọc số từ người dùng. Sau đó, chúng tôi sử dụng vòng lặp Chương trình Python này tính toán tổng chữ số của một số nhất định cho đến khi số giảm xuống một chữ số.
while
lồng nhau để tính tổng chữ số cho đến khi số giảm xuống một chữ số. Chúng tôi cũng hiển thị tổng ở mỗi bước.sum of digit until number reduces to single digit. We also display sum at each
step.Mã nguồn Python: Tổng chữ số cho đến khi số trở thành một chữ số
# Sum of digit until it reduces to single digit
# Reading number
number = int[input["Enter number: "]]
# Finding sum
total_sum = 0
step = 1
condition = True
while condition:
while number:
total_sum += number%10
number //= 10
print["Step-%d Sum: %d" %[step, total_sum]]
number = total_sum
total_sum = 0
step += 1
condition = number > 9
Đầu ra
Enter number: 99999999999
Step-1 Sum: 99
Step-2 Sum: 18
Step-3 Sum: 9
Cho một số n, chúng ta cần tìm tổng số các chữ số của nó như vậy: & nbsp;n, we need to find the sum of its digits such that:
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]
Ví dụ: & nbsp;
Input : 1234 Output : 1 Explanation : The sum of 1+2+3+4 = 10, digSum[x] == 10 Hence ans will be 1+0 = 1 Input : 5674 Output : 4
Cách tiếp cận vũ phu là tổng hợp tất cả các chữ số cho đến khi tổng //en.wikipedia.org/wiki/digital_root
Dưới đây là việc thực hiện ý tưởng trên: & NBSP;
C++
#include
using
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 90
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 91
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 92
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 93
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 92
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 95
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 96
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]6
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]7
Input : 1234 Output : 1 Explanation : The sum of 1+2+3+4 = 10, digSum[x] == 10 Hence ans will be 1+0 = 1 Input : 5674 Output : 494
13
If n == 0 return 0; If n % 9 == 0 digSum[n] = 9 Else digSum[n] = n % 96
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
13
Input : 1234 Output : 1 Explanation : The sum of 1+2+3+4 = 10, digSum[x] == 10 Hence ans will be 1+0 = 1 Input : 5674 Output : 499
Input : 1234 Output : 1 Explanation : The sum of 1+2+3+4 = 10, digSum[x] == 10 Hence ans will be 1+0 = 1 Input : 5674 Output : 45
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 92
17
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 96
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 92
106
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
108
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
13
If n == 0 return 0; If n % 9 == 0 digSum[n] = 9 Else digSum[n] = n % 96
Input : 1234 Output : 1 Explanation : The sum of 1+2+3+4 = 10, digSum[x] == 10 Hence ans will be 1+0 = 1 Input : 5674 Output : 45
Java
If n == 0 return 0; If n % 9 == 0 digSum[n] = 9 Else digSum[n] = n % 98
114
91
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 985
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
94
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 92
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 93
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 92
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 95
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 96
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]6
#include
7while
4#include
2If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
13
while
4while
5If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
13
136
#include
1 138__
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
Input : 1234 Output : 1 Explanation : The sum of 1+2+3+4 = 10, digSum[x] == 10 Hence ans will be 1+0 = 1 Input : 5674 Output : 45
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
90
94
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 916
151
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 96
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 92
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 9222
157
while
5If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 926
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
Input : 1234 Output : 1 Explanation : The sum of 1+2+3+4 = 10, digSum[x] == 10 Hence ans will be 1+0 = 1 Input : 5674 Output : 45
Input : 1234 Output : 1 Explanation : The sum of 1+2+3+4 = 10, digSum[x] == 10 Hence ans will be 1+0 = 1 Input : 5674 Output : 45
Python3
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 932
165
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]6
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 949
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 936
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 936
while
4Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 946
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
13
while
4Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]6
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 949
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 967
#include
1 Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 936__
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
13
#include
1Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
189
190
Input : 1234 Output : 1 Explanation : The sum of 1+2+3+4 = 10, digSum[x] == 10 Hence ans will be 1+0 = 1 Input : 5674 Output : 494
13
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 949
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 967
#include
1#include
2Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 955
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 936
157
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 980
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 981
C#
using
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 983
91
If n == 0 return 0; If n % 9 == 0 digSum[n] = 9 Else digSum[n] = n % 905
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 96
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
94
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 92
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 93
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 92
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 95
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 96
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]6
#include
7while
4#include
2If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
13
while
4while
5If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
13
136
#include
1 138__
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
Input : 1234 Output : 1 Explanation : The sum of 1+2+3+4 = 10, digSum[x] == 10 Hence ans will be 1+0 = 1 Input : 5674 Output : 45
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
90
94
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 916
151
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 96
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 92
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 9222
157
while
5If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]35
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
Input : 1234 Output : 1 Explanation : The sum of 1+2+3+4 = 10, digSum[x] == 10 Hence ans will be 1+0 = 1 Input : 5674 Output : 45
Input : 1234 Output : 1 Explanation : The sum of 1+2+3+4 = 10, digSum[x] == 10 Hence ans will be 1+0 = 1 Input : 5674 Output : 45
Enter number: 99999999999
Step-1 Sum: 99
Step-2 Sum: 18
Step-3 Sum: 9
32 1
65
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]39
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]6
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 949
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 936
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 936
while
4Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 946
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 96
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
13
while
4If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
13
while
4while
5If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
13
136
#include
1 138__
Input : 1234 Output : 1 Explanation : The sum of 1+2+3+4 = 10, digSum[x] == 10 Hence ans will be 1+0 = 1 Input : 5674 Output : 45
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
90
94
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 916
151
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 92
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 9222
157
while
5Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 932
165
Enter number: 99999999999
Step-1 Sum: 99
Step-2 Sum: 18
Step-3 Sum: 9
7If n < 10
digSum[n] = n
Else
digSum[n] = Sum[digSum[n]]
6 Enter number: 99999999999
Step-1 Sum: 99
Step-2 Sum: 18
Step-3 Sum: 9
49Enter number: 99999999999
Step-1 Sum: 99
Step-2 Sum: 18
Step-3 Sum: 9
36Enter number: 99999999999
Step-1 Sum: 99
Step-2 Sum: 18
Step-3 Sum: 9
36 while
4Enter number: 99999999999
Step-1 Sum: 99
Step-2 Sum: 18
Step-3 Sum: 9
46
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]98
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
13
while
4Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 96
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]6
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]7
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
13
while
4while
5If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]5
13
136
#include
1 138__
Input : 1234 Output : 1 Explanation : The sum of 1+2+3+4 = 10, digSum[x] == 10 Hence ans will be 1+0 = 1 Input : 5674 Output : 45
106
If n == 0 return 0; If n % 9 == 0 digSum[n] = 9 Else digSum[n] = n % 985
Input : 1234 Output : 1 Explanation : The sum of 1+2+3+4 = 10, digSum[x] == 10 Hence ans will be 1+0 = 1 Input : 5674 Output : 431
Output:
9
Enter number: 99999999999
Step-1 Sum: 99
Step-2 Sum: 18
Step-3 Sum: 9
79
0 9
4 Enter number: 99999999999
Step-1 Sum: 99
Step-2 Sum: 18
Step-3 Sum: 9
16 1
51 O[1]
If n < 10
digSum[n] = n
Else
digSum[n] = Sum[digSum[n]]
5Enter number: 99999999999
Step-1 Sum: 99
Step-2 Sum: 18
Step-3 Sum: 9
2 Enter number: 99999999999
Step-1 Sum: 99
Step-2 Sum: 18
Step-3 Sum: 9
2221
57while
5 O[1]
Enter number: 99999999999
Step-1 Sum: 99
Step-2 Sum: 18
Step-3 Sum: 9
32 1
65
//www.geeksforgeeks.org/digital-rootrepeated-digital-sum-given-integer/
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 97
If n < 10 digSum[n] = n Else digSum[n] = Sum[digSum[n]]6
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 949
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 936
Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 936
while
4Enter number: 99999999999 Step-1 Sum: 99 Step-2 Sum: 18 Step-3 Sum: 946Ayush Khanduri. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to . See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.