Skip to content

Commit 2c6c182

Browse files
committed
add Sum_of_Digits_of_a_Number
1 parent 896bd97 commit 2c6c182

File tree

4 files changed

+76
-0
lines changed

4 files changed

+76
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
"""Iterative Approach"""
2+
3+
4+
def sum_of_digits(n: int) -> int:
5+
"""
6+
>>> sum_of_digits(12345)
7+
15
8+
>>> sum_of_digits(0)
9+
0
10+
>>> sum_of_digits(9999)
11+
36
12+
"""
13+
sum = 0
14+
while n != 0:
15+
last = n % 10
16+
sum += last
17+
n //= 10
18+
return sum
19+
20+
21+
if __name__ == "__main__":
22+
from doctest import testmod
23+
24+
testmod(verbose=True)
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
"""Recursive Approach"""
2+
3+
4+
def sum_of_digits(n: int) -> int:
5+
"""
6+
>>> sum_of_digits(12345)
7+
15
8+
>>> sum_of_digits(0)
9+
0
10+
>>> sum_of_digits(9999)
11+
36
12+
"""
13+
if n == 0:
14+
return 0
15+
return n % 10 + sum_of_digits(n // 10)
16+
17+
18+
if __name__ == "__main__":
19+
from doctest import testmod
20+
21+
testmod(verbose=True)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
"""Taking Input Number as String"""
2+
3+
4+
def sum_of_digits(s: str) -> int:
5+
"""
6+
>>> sum_of_digits("12345")
7+
15
8+
>>> sum_of_digits("0")
9+
0
10+
>>> sum_of_digits("9999")
11+
36
12+
>>> sum_of_digits("1234567890")
13+
45
14+
>>> sum_of_digits("123456789123456789123422")
15+
104
16+
"""
17+
sum: int = 0
18+
for i in range(len(s)):
19+
digit: int = ord(s[i]) - ord("0")
20+
sum += digit
21+
return sum
22+
23+
24+
if __name__ == "__main__":
25+
from doctest import testmod
26+
27+
testmod(verbose=True)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
## Sum_of_Digits_of_a_Number Mehod
2+
- Iterative Approach
3+
- Recursive Approach
4+
- Taking Input Number as String

0 commit comments

Comments
 (0)