Kata FizzBuzz

Fizzbuzz kata
Want create site? Find Free WordPress Themes and plugins.

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/

Did you find apk for android? You can find new Free Android Games and apps.

Bình luận

1 reply

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *