問題
1からlimitまでの各整数について、3の倍数の場合はFizz、5の倍数の場合はBuzz、両方の倍数の場合はFizzBuzzとします。それ以外の場合は数字を文字列として使います。出力は表示せず、順番通りにリストとして返してください。
fizz_buzz(limit) を実装してください。
入力
limit: 含める最後の整数。
出力
1からlimitまでの各整数に対応する文字列のリストを返してください。
制約
0 ≤ limit ≤ 10,000。limitが0の場合は空のリストを返してください。
例
例 1
入力:
limit = 5
期待される出力:
expected = ["1", "2", "Fizz", "4", "Buzz"]
入力:
long long limit = 5;
期待される出力:
std::vector<std::string> expected = {"1", "2", "Fizz", "4", "Buzz"};
入力:
long limit = 5;
期待される出力:
string[] expected = new string[] {"1", "2", "Fizz", "4", "Buzz"};
解説
3は3で割り切れ、5は5で割り切れます。他の要素はそのまま数字を使います。
例 2
入力:
limit = 0
期待される出力:
expected = []
入力:
long long limit = 0;
期待される出力:
std::vector<std::string> expected = {};
入力:
long limit = 0;
期待される出力:
string[] expected = new string[] {};
解説
1から0までの整数は存在しないため、リストは空になります。
解き方のヒント
まずは自分で考えてから、ヒントを 1 つずつ開いてみましょう。
ヒント 1
各位置は、その整数が3と5で割り切れるかだけで決まる。
ヒント 2
各数について両方の条件を確認し、順に結果リストへ追加する。
ヒント 3
下限に注意。limitが0なら、答えは空のリスト。
目安の計算量
時間 O(n)、追加メモリ O(n)
参考資料
この課題はCodeUtility用に調整されています。上記の説明と制約に従ってください。