• Написать программу для решения задачи (все в одной программе).
    Показать диалог с пользователем (вывод сообщений и полученных значений).

    Введено трехзначное число X
    А) вывести цифры этого числа (а, b, с)
    Б) проверить, образуют ли цифры этого числа палиндром?
    В) образуют ли цифры данного числа возрастающую последовательность?
    Г) определить и вывести максимальную цифру данного числа
    Д) определить сумму чисел полученного числа (S)
    Е) определить, является ли число S четным и кратным 3
    Ж) определить принадлежит ли число S интервалу (10 З) вывести перевертыш этого числа (справа налево)

Ответы 1

  • Не стал сильно напрягаться и накидал все в std::basic_string<char>.

    Компилировать с -std=c++14 (или выше).

    #include <iostream>

    #include <algorithm>

    #include <numeric>

    #include <iterator>

    int main()

    {

       std::string X;//предполагается, что X - положительное целое.

       std::cin >> X;

       std::cout << "A) ";

       for(auto& i : X)

           std::cout << i << " ";

       std::cout << std::endl;

       std::cout << "Б) " << std::boolalpha << (*X.crbegin() == *X.crbegin()) << std::endl;

       std::cout << "В) " << std::boolalpha << std::is_sorted(X.cbegin(), X.cend()) << std::endl;

       std::cout << "Г) " << *std::max_element(X.begin(), X.end(), [](const auto& var1, const auto& var2)

       {

           return ((static_cast<int>(var1) - '0') < (static_cast<int>(var2) - '0'));

       }) << std::endl;

       {

           int temp(std::accumulate(X.begin(), X.end(), 0, [](auto& var1, auto& var2)

               {

                   return var1 + (static_cast<int>(var2) - '0');

               }));

           std::cout << "Д) " << temp << std::endl;

           std::cout << "Е) " << std::boolalpha << ((temp % 2 == 0) && (temp % 3 == 0))

                     << std::endl;

           #define _BEGIN 10 // начало диапазона

           #define _END 100 // конец диапазона (_BEGIN; _END)

           std::cout << "Ж) " <<std::boolalpha << (temp > _BEGIN && temp < _END)

                     << std::endl;

       }

       std::cout << "З) ";

       std::copy(X.crbegin(), X.crend(),

                 std::ostream_iterator<const char>(std::cout, ""));

       std::cout << std::endl;

       return 0;

    }

    answer img
    • Автор:

      oliveiaua
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years