mirror of
https://hub.njuu.cf/TheAlgorithms/Python.git
synced 2023-10-11 13:06:12 +08:00
Add type hints and default args for problem 20 (#2962)
- Improved variable names - Added type hints - Added default argument values for validate_solutions script
This commit is contained in:
parent
e41d04112f
commit
11a5afd8a1
@ -1,4 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
|
Problem 20: https://projecteuler.net/problem=20
|
||||||
|
|
||||||
n! means n × (n − 1) × ... × 3 × 2 × 1
|
n! means n × (n − 1) × ... × 3 × 2 × 1
|
||||||
|
|
||||||
For example, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800,
|
For example, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800,
|
||||||
@ -8,14 +10,15 @@ Find the sum of the digits in the number 100!
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def factorial(n):
|
def factorial(num: int) -> int:
|
||||||
|
"""Find the factorial of a given number n"""
|
||||||
fact = 1
|
fact = 1
|
||||||
for i in range(1, n + 1):
|
for i in range(1, num + 1):
|
||||||
fact *= i
|
fact *= i
|
||||||
return fact
|
return fact
|
||||||
|
|
||||||
|
|
||||||
def split_and_add(number):
|
def split_and_add(number: int) -> int:
|
||||||
"""Split number digits and add them."""
|
"""Split number digits and add them."""
|
||||||
sum_of_digits = 0
|
sum_of_digits = 0
|
||||||
while number > 0:
|
while number > 0:
|
||||||
@ -25,8 +28,8 @@ def split_and_add(number):
|
|||||||
return sum_of_digits
|
return sum_of_digits
|
||||||
|
|
||||||
|
|
||||||
def solution(n):
|
def solution(num: int = 100) -> int:
|
||||||
"""Returns the sum of the digits in the number 100!
|
"""Returns the sum of the digits in the factorial of num
|
||||||
>>> solution(100)
|
>>> solution(100)
|
||||||
648
|
648
|
||||||
>>> solution(50)
|
>>> solution(50)
|
||||||
@ -42,8 +45,8 @@ def solution(n):
|
|||||||
>>> solution(1)
|
>>> solution(1)
|
||||||
1
|
1
|
||||||
"""
|
"""
|
||||||
f = factorial(n)
|
nfact = factorial(num)
|
||||||
result = split_and_add(f)
|
result = split_and_add(nfact)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
|
Problem 20: https://projecteuler.net/problem=20
|
||||||
|
|
||||||
n! means n × (n − 1) × ... × 3 × 2 × 1
|
n! means n × (n − 1) × ... × 3 × 2 × 1
|
||||||
|
|
||||||
For example, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800,
|
For example, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800,
|
||||||
@ -9,8 +11,8 @@ Find the sum of the digits in the number 100!
|
|||||||
from math import factorial
|
from math import factorial
|
||||||
|
|
||||||
|
|
||||||
def solution(n):
|
def solution(num: int = 100) -> int:
|
||||||
"""Returns the sum of the digits in the number 100!
|
"""Returns the sum of the digits in the factorial of num
|
||||||
>>> solution(100)
|
>>> solution(100)
|
||||||
648
|
648
|
||||||
>>> solution(50)
|
>>> solution(50)
|
||||||
@ -26,7 +28,7 @@ def solution(n):
|
|||||||
>>> solution(1)
|
>>> solution(1)
|
||||||
1
|
1
|
||||||
"""
|
"""
|
||||||
return sum([int(x) for x in str(factorial(n))])
|
return sum([int(x) for x in str(factorial(num))])
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
|
Problem 20: https://projecteuler.net/problem=20
|
||||||
|
|
||||||
n! means n × (n − 1) × ... × 3 × 2 × 1
|
n! means n × (n − 1) × ... × 3 × 2 × 1
|
||||||
|
|
||||||
For example, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800,
|
For example, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800,
|
||||||
@ -9,8 +11,8 @@ Find the sum of the digits in the number 100!
|
|||||||
from math import factorial
|
from math import factorial
|
||||||
|
|
||||||
|
|
||||||
def solution(n):
|
def solution(num: int = 100) -> int:
|
||||||
"""Returns the sum of the digits in the number 100!
|
"""Returns the sum of the digits in the factorial of num
|
||||||
>>> solution(1000)
|
>>> solution(1000)
|
||||||
10539
|
10539
|
||||||
>>> solution(200)
|
>>> solution(200)
|
||||||
@ -32,7 +34,7 @@ def solution(n):
|
|||||||
>>> solution(0)
|
>>> solution(0)
|
||||||
1
|
1
|
||||||
"""
|
"""
|
||||||
return sum(map(int, str(factorial(n))))
|
return sum(map(int, str(factorial(num))))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
|
Problem 20: https://projecteuler.net/problem=20
|
||||||
|
|
||||||
n! means n × (n − 1) × ... × 3 × 2 × 1
|
n! means n × (n − 1) × ... × 3 × 2 × 1
|
||||||
|
|
||||||
For example, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800,
|
For example, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800,
|
||||||
@ -8,8 +10,8 @@ Find the sum of the digits in the number 100!
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def solution(n):
|
def solution(num: int = 100) -> int:
|
||||||
"""Returns the sum of the digits in the number 100!
|
"""Returns the sum of the digits in the factorial of num
|
||||||
>>> solution(100)
|
>>> solution(100)
|
||||||
648
|
648
|
||||||
>>> solution(50)
|
>>> solution(50)
|
||||||
@ -27,7 +29,7 @@ def solution(n):
|
|||||||
"""
|
"""
|
||||||
fact = 1
|
fact = 1
|
||||||
result = 0
|
result = 0
|
||||||
for i in range(1, n + 1):
|
for i in range(1, num + 1):
|
||||||
fact *= i
|
fact *= i
|
||||||
|
|
||||||
for j in str(fact):
|
for j in str(fact):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user