Dễ 0 đã giải Tỷ lệ chấp nhận 0%

Fizz Buzz

Tạo một dãy số dựa trên tính chia hết cho 3 và 5.

Bạn sẽ học được gì

  • Kiểm tra chia hết cho 3 và 5
  • Sắp xếp các nhánh if/else đúng thứ tự
  • Tạo danh sách kết quả trong vòng lặp

Đề bài

Xem bản gốc (English)

Với mỗi số nguyên từ 1 đến limit, sử dụng Fizz cho các bội số của 3, Buzz cho các bội số của 5, và FizzBuzz cho các bội số của cả 3 và 5. Nếu không thuộc các trường hợp trên, sử dụng số đó dưới dạng chuỗi. Trả về các phần tử theo đúng thứ tự thay vì in ra màn hình.

Cài đặt hàm fizz_buzz(limit).

Đầu vào

limit: Số nguyên cuối cùng cần bao gồm.

Đầu ra

Trả về một danh sách các chuỗi, mỗi chuỗi tương ứng với một số nguyên từ 1 đến limit.

Ràng buộc

0 ≤ limit ≤ 10.000. Nếu limit bằng 0 thì trả về danh sách rỗng.

Ví dụ

Ví dụ 1
Đầu vào:
limit = 5

Kết quả mong đợi:
expected = ["1", "2", "Fizz", "4", "Buzz"]
Đầu vào:
long long limit = 5;

Kết quả mong đợi:
std::vector<std::string> expected = {"1", "2", "Fizz", "4", "Buzz"};
Đầu vào:
long limit = 5;

Kết quả mong đợi:
string[] expected = new string[] {"1", "2", "Fizz", "4", "Buzz"};

Giải thích

3 chia hết cho 3 và 5 chia hết cho 5. Các phần tử khác giữ nguyên số của chúng.

Ví dụ 2
Đầu vào:
limit = 0

Kết quả mong đợi:
expected = []
Đầu vào:
long long limit = 0;

Kết quả mong đợi:
std::vector<std::string> expected = {};
Đầu vào:
long limit = 0;

Kết quả mong đợi:
string[] expected = new string[] {};

Giải thích

Không có số nguyên nào từ 1 đến 0, nên danh sách là rỗng.

Hướng tiếp cận

Hãy tự thử trước, sau đó mở từng gợi ý một.

Gợi ý 1

Mỗi vị trí chỉ phụ thuộc vào việc số hiện tại chia hết cho 3 và 5 hay không.

Gợi ý 2

Xây danh sách kết quả theo thứ tự bằng cách kiểm tra cả hai điều kiện chia hết cho mỗi số.

Gợi ý 3

Xử lý cẩn thận cận dưới: nếu giới hạn là 0 thì kết quả là danh sách rỗng.

Độ phức tạp mong đợi

thời gian O(n), bộ nhớ phụ O(n)

Tham khảo

Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.