今天的題目是HackerRank的測試題目,一開始寫的時候本來想說應該不難,真的寫時才發現List開頭的0要怎麼弄阿..而且限制時間好像不到十分鐘,所以是時間到了之後才解出來,看樣子還有好長的路要走
解這些題目時,並不是甚麼最佳化解,出發點是以能了解題目在說甚麼,解題方式是目前自己可以理解並解答完成的模式去走,先解的出來,未來再一步步朝著更高一階去進行,所以請別太苛責啦!!
小雷的FizzBuzz Solution :
'''
題目 :
3與5的倍數 >> FizzBuzz
只有3 >> Fizz
只有5 >> Buzz
都沒有 >> i
範圍 : 0 < n < 2*10^5
解題方向 :
含頭不含尾零要去除,轉換list時尾數+1
分別計算3與5的字詞再做輸出判斷
'''
def FizzBuzz(n) :
# 增加尾數
n = n + 1
# 從1開始計算並轉換為list
ran_n = list(range(1, n))
# 判斷題目範圍
if 0 < n < 2*10**5 :
for i in range(len(ran_n)):
# 計算3與5的餘數
fizz = ran_n[i] % 3
buzz = ran_n[i] % 5
# 判斷輸出哪項字詞
if fizz == 0 and buzz == 0:
print("FizzBuzz")
elif fizz == 0 and buzz != 0 :
print("Fizz")
elif buzz == 0 and fizz != 0:
print("Buzz")
else :
print(ran_n[i])
else :
print("Error n")
if __name__ == "__main__" :
n = int(input("enter num : "))
FizzBuzz(n)
沒有留言:
張貼留言