Указания к решению: 1) Для проверки на соответствие элементов массива условию создать функцию. 2) Для вывода массива создать функцию, в которую передавать массив через параметр. 3) Массив заполнять с датчика случайных чисел. Язык программирования C++

Дан массив натуральных чисел A(N), значения элементов которого лежат в диапазоне [1, 200].

ЗАДАНИЕ. Найти кол-во тех элементов массива, которые являются палиндромами(т.е. читаются одинаково слева направо и справа налево), а также найти минимальный элемент среди тех,цифровая запись которых содержит цифру 0 и не содержит цифру 8.

AngelIv AngelIv    3   04.06.2021 21:08    0

Ответы
olesyakondakova olesyakondakova  04.07.2021 21:09

#include <iostream>

#include <cmath>

#include <ctime>

using namespace std;

int counter = 0, _min = 201;

void palindrome(int number)

{

   int number_cpy = number;

   int n = 0;

   while (number)

   {

       n = 10 * n + number % 10;

       number /= 10;

   }

   if (n == number_cpy) {

       counter++;

   }

}

void SearchMin(int number) {

   bool C8 = false, C0 = false;

   int cpy_number = number;

   while (number > 0) {

       if (number % 10 == 8) {

           C8 = true;

           break;

       }

       if (number % 10 == 0)

           C0 = true;

       number /= 10;

   }

   if (C8 == false && C0 == true && cpy_number < _min)

       _min = cpy_number;

}

void SetElements(int num[], int N) {

   for (int i = 0; i < N; i++) {

       num[i] = 1 + rand() % 200;

       palindrome(num[i]);

       SearchMin(num[i]);

   }

}

void PrintElements(int num[], int N) {

   cout << "Элементы массива: " << endl;

   for (int i = 0; i < N; i++) {

       cout << num[i] << " ";

   }

   cout << endl;

}

signed main()

{

   setlocale(LC_ALL, "Rus");

   srand(time(NULL));

   int N;

   cout << "Введите количество элементов массива: ";

   cin >> N;

   int *a = new int[N];

   SetElements(a, N);

   PrintElements(a, N);

   cout << "\nКоличество палиндромов: " << counter << endl;

   if (_min == 201)

       cout << "Нет элементов, которые не содержат 8, но содержат 0!";

   else

       cout << "\nМинимальный элемент, который не содержит цифру 8, но содержит цифру 0: " << _min << endl;

   delete[] a;

   return 0;

}


Указания к решению: 1) Для проверки на соответствие элементов массива условию создать функцию. 2) Дл
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика