C++でFizzBuzz問題を解決する方法


方法1: if文を使用する

#include <iostream>
int main() {
    for (int i = 1; i <= 100; ++i) {
        if (i % 3 == 0 && i % 5 == 0) {
            std::cout << "FizzBuzz" << std::endl;
        } else if (i % 3 == 0) {
            std::cout << "Fizz" << std::endl;
        } else if (i % 5 == 0) {
            std::cout << "Buzz" << std::endl;
        } else {
            std::cout << i << std::endl;
        }
    }
    return 0;
}

方法2: 三項演算子を使用する

#include <iostream>
int main() {
    for (int i = 1; i <= 100; ++i) {
        std::cout << (i % 3 == 0 && i % 5 == 0 ? "FizzBuzz" : (i % 3 == 0 ? "Fizz" : (i % 5 == 0 ? "Buzz" : std::to_string(i)))) << std::endl;
    }
    return 0;
}

方法3: switch文を使用する

#include <iostream>
int main() {
    for (int i = 1; i <= 100; ++i) {
        switch (i % 15) {
            case 0:
                std::cout << "FizzBuzz" << std::endl;
                break;
            case 3:
            case 6:
            case 9:
            case 12:
                std::cout << "Fizz" << std::endl;
                break;
            case 5:
            case 10:
                std::cout << "Buzz" << std::endl;
                break;
            default:
                std::cout << i << std::endl;
                break;
        }
    }
    return 0;
}