Given a positive integer n print each number from 1 to n, each on a new line.
For each multiple of 3, print "Fizz" instead of the number.
For each multiple of 5, print "Buzz" instead of the number.
For numbers which are multiples of both 3 and 5, print "FizzBuzz" instead of the number.
Example:
Input: n = 15 Output: 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz
Note:
Your algorithm should run in O(n) time and use O(1) space.
Hints:
In order to print the items, we should iterate through the numbers
1 to n and check for each of them what condition is satisfied to print accordingly. How can we do this?
Let's use a
for loop and a variable i to iterate through the numbers 1 to n:
for each i : 1 -> n:
# Print either i or "Fizz" or "Buzz" or "FizzBuzz"
Inside the loop, we need to decide what should be printed between Fizz, Buzz, FizzBuzz and i.How can we do this?
Using sequential
if - else statements along with the modulo (%) operator:for each i : 1 -> n:
if i % 15 == 0:
print("FizzBuzz")
else if i % 3 == 0:
print("Fizz")
else if i % 5 == 0:
print("Buzz")
else:
print(i)
We have a for loop that performs exactly
n iterations, thus the Time Complexity is O(n).The only extra space we use is the iterator variable
i inside the loop, thus the Extra Space used is O(1).
Video Solution:
Free plan: 30 tutor messages. Premium is unlimited.
Saved
Ctrl + Enter to check