Решение FizzBuzz HackerRank на C++: несколько подходов

«Решение FizzBuzz HackerRank C++» относится к задаче решения проблемы FizzBuzz на платформе HackerRank с использованием языка программирования C++.

Вот одно из возможных решений проблемы FizzBuzz в C++:

#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;
}

Это решение использует цикл forдля перебора от 1 до 100. Он проверяет, делится ли текущее число на 3 и 5, и если да, то печатает «FizzBuzz». Если число делится только на 3, выводится «Fizz». Если число делится только на 5, печатается «Buzz». В противном случае он печатает сам номер.

Альтернативное решение:

#include <iostream>
#include <string>
int main() {
    for (int i = 1; i <= 100; ++i) {
        std::string output = "";
        if (i % 3 == 0) {
            output += "Fizz";
        }
        if (i % 5 == 0) {
            output += "Buzz";
        }
        if (output.empty()) {
            output = std::to_string(i);
        }
        std::cout << output << std::endl;
    }
    return 0;
}

Это решение использует конкатенацию строк для построения выходных данных. Он проверяет, делится ли число на 3, и добавляет «Fizz» к выходной строке, если оно истинно. То же самое происходит и с делимостью на 5, добавляя к выходной строке слово «Buzz». Если после этих проверок выходная строка по-прежнему пуста, это означает, что число не делится ни на 3, ни на 5, поэтому число преобразуется в строку и присваивается выходным данным.