Update cái đề bài
Write a program that prints the integers from 1 to 100.
But for multiples of three print “Fizz” instead of the number, and for the multiples of five print “Buzz”.
For numbers which are multiples of both three and five print “FizzBuzz”.
Bài này dễ, nhưng mà hay Thực ra Đạt dính trap bài này. Hôm trước ngồi code tay thì Đạt nghĩ và viết ra ngay như thế này
for(int i = 1; i <= 100; ++i) {
if ( i % 3 == 0) {
if ( i % 5 == 0 )
printf("FizzBuzz\n");
else
printf("Fizz\n");
} else if ( i % 5 == 0 ) {
printf("Buzz\n");
} else {
printf("%d\n", i);
}
}
Nhưng thực tế đây là cách giải tồi, bởi vì đây là một bài toán đơn giản. Nhưng giải thuật lại phức tạp một cách không cần thiết.
Như thế này cũng giải quyết được vấn đề, mà code đơn giản hơn nhiều.
for(int i = 1; i <= 100; ++i) {
if (i % 3 == 0 && i % 5 == 0) {
printf("FizzBuzz\n");
} else if ( i % 3 == 0 ) {
printf("Fizz\n");
} else if ( i % 5 == 0 ) {
printf("Buzz\n");
} else {
printf("%d\n", i);
}
}
good is better than best