1. 程式人生 > 其它 >第96期-基礎結構:字串 Fizz Buzz

第96期-基礎結構:字串 Fizz Buzz

1 問題描述

寫一個程式,輸出從 1 到 n 數字的字串表示。

  1. 如果n是3的倍數,輸出“Fizz”;

  2. 如果n是5的倍數,輸出“Buzz”;

  3. 如果n同時是3和5的倍數,輸出 “FizzBuzz”。

示例 1:

輸入:n = 15
輸出:["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]

示例 2:

輸入:n = 5
輸出:['1', '2', 'Fizz', '4', 'Buzz']

初始程式碼

from typing import List
class Solution: def fizzBuzz(self, n: int) -> List[str]: #在此之間填寫程式碼 print(Solution().fizzBuzz(15)) print(Solution().fizzBuzz(5))
View Code

2 解題思路

  • 標籤:字串
  • 就像你每次玩 FizzBuzz 那樣,你只需要判斷這個數是能被 3 整除? 還是能被 5 整除? 或者是都能被整除。
  • 初始化一個空的答案列表。
  • 遍歷 1 ... N。
  • 對於每個數,判斷它能不能同時被 3 和 5 整除,如果可以就把 FizzBuzz 加入答案列表。
  • 如果不行,判斷它能不能被 3 整除,如果可以,把 Fizz 加入答案列表。
  • 如果還是不行,判斷它能不能被 5 整除,如果可以,把 Buzz 加入答案列表。
  • 如果以上都不行,把這個數加入答案列表。

#3 解題方法

from typing import List
class Solution:
    def fizzBuzz(self, n: int) -> List[str]:
        i=1
        a=[]
        while i<=n:
            if i%3==0 and i%5==0:a.append('FizzBuzz')
            
elif i%3==0:a.append('Fizz') elif i%5==0:a.append('Buzz') else:a.append(str(i)) i+=1 return a print(Solution().fizzBuzz(15)) print(Solution().fizzBuzz(5))
View Code

第1-3,15-16行:題目中已經給出的資訊,執行程式碼時要根據這些程式碼進行編輯
第4行:建立變數i用於索引
第5行:定義空列表a用於存放結果
第6行:當i<=n的時候,執行迴圈
第7行:判斷它能不能同時被 3 和 5 整除,如果可以就把 FizzBuzz 加入答案a列表
第8行:如果不行,判斷它能不能被 3 整除,如果可以,把 Fizz 加入答案a列表
第9行:如果還是不行,判斷它能不能被 5 整除,如果可以,把 Buzz 加入答案a列表
第10行:如果以上都不行,把這個數加入答案a列表
第11行:i+=1用於下次迴圈
第12行:返回答案a列表

程式碼執行結果為: