Предмет: Информатика, автор: poplop83

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

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


SRT1905: какой язык?
Browze: Какой уровень у вопроса?Через телефон, увы, не видно.

Ответы

Автор ответа: Browze
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;

}


Приложения:
Похожие вопросы
Предмет: Геометрия, автор: akaevva5