Fizzbuzz là một trò chơi đếm số kinh điển của trẻ em, đếm từ 1 đến 100 nhưng số nào là bội số của 3 thì phải nói fizz thay vì đếm số đó, số nào là bộ số của 5 thì phải thay bằng từ buzz, tương tự bội của 3 và 5 thì nói fizzbuzz.
Bỗng một ngày đẹp trời ông Imran Ghory (đang là Partner tại quỹ Blossom Capital, từng làm việc tại quỹ đầu tư mạo hiểm Index Ventures) bảo rằng: tất cả tài năng của dev chỉ là lý thuyết, người làm lâu năm cũng chật vật với việc implement linked list, để biết năng lực chỉ cần giải bài toán:
In từ 1 đến 100, số nào là bộ của 3 thì in fizz, bội của 5 thì in buzz, bội của cả 3 và 5 thì in fizzbuzz.
Bài viết gốc của ông Imran Ghory: https://imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers-who-grok-coding.
Đây là cách của mình viết bằng javascript
for (let x = 1; x <= 100; x++) {
switch (true) {
case x % 3 == 0 && x % 5 == 0:
console.log("fizzbuzz");
break;
case x % 3 == 0:
console.log("fizz");
break;
case x % 5 == 0:
console.log("buzz");
break;
default:
console.log(x);
break;
}
}
Mình dùng switch-case
bởi vì nếu cần thêm trường hợp chia hết cho 7, cho 9 thì chèn case
vào giữa, code vẫn thẳng hàng, cùng cấp không sợ bị rối so với if-else
. Chỉ cần quyết định chèn lên trên những case
có sẵn hay chèn vào sau case
cuối cùng thôi. Còn các bạn thì sao? hãy thử code bên dưới nhé!