Skip to content

Commit 9f3b23c

Browse files
committed
[Feature] FIZZ BUZZ!
1 parent 986d009 commit 9f3b23c

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ Different algorithmic programs. Grouped by general topic.
5252
* [Hamming Distance](algorithms/bitwise/operations.py)
5353
* [Hamming Weight](algorithms/bitwise/operations.py)
5454

55-
#### Mathematical Algortihms
55+
#### Mathematical Algorithms
5656
* [Fibonacci](algorithms/math/fibonacci.py)
57-
* [Factorial](algorithms/math/factorial.py)
57+
* [Factorial](algorithms/math/factorial.py)
58+
59+
#### String Based Algorithms
60+
* [Fizz Buzz](algorithms/string/fizz_buzz.py)

algorithms/string/fizz_buzz.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
def fizz_buzz(n):
2+
"""
3+
Return the numbers (1,n) but if the number is
4+
divisible by 3 add "Fizz", if the number is
5+
divisible by 5, add "Buzz", if it is
6+
divisible by both, add "FizzBuzz"
7+
8+
"""
9+
return [("Fizz" if x % 3 == 0 else "") + ("Buzz" if x % 5 == 0 else "") or str(x) for x in range(1,n+1)]

tests/test_fizz_buzz.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import unittest
2+
from algorithms.string.fizz_buzz import fizz_buzz
3+
4+
class TestFizzBuzz(unittest.TestCase):
5+
6+
def test_fizz_buzz(self):
7+
self.assertEqual(['1', '2', 'Fizz', '4', 'Buzz', 'Fizz', '7', '8', 'Fizz', 'Buzz', '11', 'Fizz', '13', '14', 'FizzBuzz', '16', '17', 'Fizz', '19', 'Buzz', 'Fizz', '22', '23', 'Fizz', 'Buzz', '26', 'Fizz', '28', '29', 'FizzBuzz', '31', '32', 'Fizz', '34', 'Buzz', 'Fizz', '37', '38', 'Fizz', 'Buzz', '41', 'Fizz', '43', '44', 'FizzBuzz', '46', '47', 'Fizz', '49', 'Buzz', 'Fizz', '52', '53', 'Fizz', 'Buzz', '56', 'Fizz', '58', '59', 'FizzBuzz', '61', '62', 'Fizz', '64', 'Buzz', 'Fizz', '67', '68', 'Fizz', 'Buzz', '71', 'Fizz', '73', '74', 'FizzBuzz', '76', '77', 'Fizz', '79', 'Buzz', 'Fizz', '82', '83', 'Fizz', 'Buzz', '86', 'Fizz', '88', '89', 'FizzBuzz', '91', '92', 'Fizz', '94', 'Buzz', 'Fizz', '97', '98', 'Fizz', 'Buzz'], fizz_buzz(100))

0 commit comments

Comments
 (0)