Michael Feathers và EmilyBache đã từng biểu diễn bài Kata này trong 4 phút tại Agile2008 khi thi đấu trong chương trình “Programming with the stars” trên ngôn ngữ Python.
Cấp độ của Kata: Dùng để dạy TDD, BabySteps rất tốt.
Mô tả bài toán
Hãy tưởng tượng. Bạn là một đứa trẻ 11 tuổi và chỉ còn 5 phút là hết giờ học, thầy dạy Toán quyết định đưa ra một trò chơi vui vẻ cho lớp. Thầy giáo giải thích luật chơi như sau: “Thầy sẽ lần lượt chỉ vào mỗi bạn và em đó phải nói ra số tiếp theo của chuỗi số, bắt đầu từ 1. Tuy nhiên, nếu em gặp phải một số chia hết cho 3 thì phải nói “Fizz”, và nếu số đó chia hết cho 5 thì phải nói “Buzz”, thay vì nói ra số đó.” Sau đó, thầy giáo lần chỉ vào tất cả các bạn trong lớp, mỗi người vui vẻ hô to: “one!”, “two!”, “Fizz!”, “four!”, “Buzz!”, … rồi thầy giáo bắt đầu chỉ đến bạn, chăm chú nhìn vào bạn… thời gian ngừng lại, miệng bạn khô khốc, lòng bàn tay rịn đầy mồ hôi cho đến khi bạn nói ra được từ “Fizz”. Thầy giáo chỉ tay sang người khác và bạn đã tránh được ngày tận thế.
Vì vậy để tránh bị xấu hổ trước mặt lớp mình, bạn phải in ra danh sách đầy đủ của trò FizzBuzz để biết rõ mình cần nói gì khi bị chỉ vào. Lớp bạn có 33 học sinh và thầy giáo có thể chỉ 3 lượt trước khi hết giờ. Thứ Năm tới là có tiết Toán rồi. Bắt tay vào code thôi!
Hãy viết một chương trình in ra các số từ 1 đến 100. Nhưng nếu số chia hết cho 3 thì in ra “Fizz”, 5 thì in ra “Buzz” thay vì in ra số đó. Và nếu số đó chia hết cho cả 3 và 5 thì in ra chữ “FizzBuzz”.
Ví dụ:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
…
…
98
Fizz
Buzz
Bước 2 – bổ sung yêu cầu mới
- Một số là “Fizz” nếu nó chia hết cho 3 hoặc chứa số 3
- Một số là “Buzz” nếu nó chia hết cho 5 hoặc chứa số 5
Nguồn Kata: http://codingdojo.org/kata/FizzBuzz/
0 Lời bình