Fix style of the first ten solutions for Project Euler (#3242)

* Fix style of the first ten solutions for Project Euler

- Unify the header docstring, and add reference URLs to wikipedia
  or similar
- Fix docstrings to be properly multilined
- Add newlines where appropriate
- Add doctests where they were missing
- Remove doctests that test for the correct solution
- fix obvious spelling or grammar mistakes in comments and
  exception messages
- Fix line endings to be UNIX. This makes two of the files seem
  to have changed completely
- no functional changes in any of the solutions were done
  (except for the spelling fixes mentioned above)

* Fix docstrings and main function as per Style Guide
This commit is contained in:
Michael D
2020-10-25 04:23:16 +01:00
committed by GitHub
parent 5be77f33f7
commit 98e9d6bdb6
35 changed files with 717 additions and 469 deletions

View File

@ -1,15 +1,21 @@
"""
Problem:
A palindromic number reads the same both ways. The largest palindrome made from
the product of two 2-digit numbers is 9009 = 91 x 99.
Project Euler Problem 4: https://projecteuler.net/problem=4
Find the largest palindrome made from the product of two 3-digit numbers which
is less than N.
Largest palindrome product
A palindromic number reads the same both ways. The largest palindrome made
from the product of two 2-digit numbers is 9009 = 91 × 99.
Find the largest palindrome made from the product of two 3-digit numbers.
References:
- https://en.wikipedia.org/wiki/Palindromic_number
"""
def solution(n: int = 998001) -> int:
"""Returns the largest palindrome made from the product of two 3-digit
"""
Returns the largest palindrome made from the product of two 3-digit
numbers which is less than n.
>>> solution(20000)
@ -23,10 +29,10 @@ def solution(n: int = 998001) -> int:
...
ValueError: That number is larger than our acceptable range.
"""
# fetches the next number
for number in range(n - 1, 9999, -1):
# converts number into string.
str_number = str(number)
# checks whether 'str_number' is a palindrome.
@ -44,8 +50,4 @@ def solution(n: int = 998001) -> int:
if __name__ == "__main__":
import doctest
doctest.testmod()
print(solution(int(input().strip())))
print(f"{solution() = }")

View File

@ -1,15 +1,21 @@
"""
Problem:
A palindromic number reads the same both ways. The largest palindrome made from
the product of two 2-digit numbers is 9009 = 91 x 99.
Project Euler Problem 4: https://projecteuler.net/problem=4
Find the largest palindrome made from the product of two 3-digit numbers which
is less than N.
Largest palindrome product
A palindromic number reads the same both ways. The largest palindrome made
from the product of two 2-digit numbers is 9009 = 91 × 99.
Find the largest palindrome made from the product of two 3-digit numbers.
References:
- https://en.wikipedia.org/wiki/Palindromic_number
"""
def solution(n: int = 998001) -> int:
"""Returns the largest palindrome made from the product of two 3-digit
"""
Returns the largest palindrome made from the product of two 3-digit
numbers which is less than n.
>>> solution(20000)
@ -19,6 +25,7 @@ def solution(n: int = 998001) -> int:
>>> solution(40000)
39893
"""
answer = 0
for i in range(999, 99, -1): # 3 digit numbers range from 999 down to 100
for j in range(999, 99, -1):
@ -29,4 +36,4 @@ def solution(n: int = 998001) -> int:
if __name__ == "__main__":
print(solution(int(input().strip())))
print(f"{solution() = }")