Skip to content

Commit 8b244c0

Browse files
realDuYuanChaogithub-actions
andauthored
Development (#23)
* add ceil * add floor * get first digit of a number * sum to n using formula * Formatted with psf/black Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
1 parent ec022c7 commit 8b244c0

File tree

6 files changed

+106
-0
lines changed

6 files changed

+106
-0
lines changed

maths/ceil.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
def ceil(number) -> int:
2+
"""
3+
>>> import math
4+
>>> numbers = [-3.14, 3.14, -3, 3, 0, 0.0, -0.0, -1234.567, 1234.567]
5+
>>> all(math.ceil(num) == ceil(num) for num in numbers)
6+
True
7+
"""
8+
return int(number) if number - int(number) <= 0 else int(number) + 1
9+
10+
11+
if __name__ == "__main__":
12+
from doctest import testmod
13+
14+
testmod()

maths/first_digit.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
def first_digit(number: int) -> int:
2+
"""
3+
>>> first_digit(-123)
4+
1
5+
>>> first_digit(0)
6+
0
7+
>>> first_digit(123)
8+
1
9+
>>> first_digit(123456789)
10+
1
11+
"""
12+
number = abs(number)
13+
while number >= 10:
14+
number //= 10
15+
return number
16+
17+
18+
if __name__ == "__main__":
19+
from doctest import testmod
20+
21+
testmod()

maths/first_digit_by_str.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
def first_digit(number: int) -> int:
2+
"""
3+
>>> first_digit(-123)
4+
1
5+
>>> first_digit(0)
6+
0
7+
>>> first_digit(123)
8+
1
9+
>>> first_digit(123456789)
10+
1
11+
"""
12+
return int(str(abs(number))[0])
13+
14+
15+
if __name__ == "__main__":
16+
from doctest import testmod
17+
18+
testmod()

maths/first_digit_recursion.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
def first_digit_recursion(number: int) -> int:
2+
"""
3+
>>> first_digit_recursion(-123)
4+
1
5+
>>> first_digit_recursion(0)
6+
0
7+
>>> first_digit_recursion(123)
8+
1
9+
>>> first_digit_recursion(123456789)
10+
1
11+
"""
12+
number = abs(number)
13+
return number if number < 10 else first_digit_recursion(number // 10)
14+
15+
16+
if __name__ == "__main__":
17+
from doctest import testmod
18+
19+
testmod()

maths/floor.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
def floor(number) -> int:
2+
"""
3+
>>> numbers = [-3.14, 3.14, -3, 3, 0, 0.0, -0.0, -1234.567, 1234.567]
4+
>>> import math
5+
>>> all(math.floor(num) == floor(num) for num in numbers)
6+
True
7+
"""
8+
return int(number) if number - int(number) >= 0 else int(number) - 1
9+
10+
11+
if __name__ == "__main__":
12+
from doctest import testmod
13+
14+
testmod()

maths/sum_to_n_formula.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
def sum_to_n(n: int) -> int:
2+
"""
3+
>>> sum_to_n(0)
4+
0
5+
>>> sum_to_n(1)
6+
1
7+
>>> sum_to_n(2)
8+
3
9+
>>> sum_to_n(10)
10+
55
11+
>>> sum_to_n(100)
12+
5050
13+
"""
14+
return (1 + n) * n // 2
15+
16+
17+
if __name__ == "__main__":
18+
from doctest import testmod
19+
20+
testmod()

0 commit comments

Comments
 (0)