По первому условию вычисляется сумма первых и последних трех цифр. Самая большая цифра 9, значит новое значение не должно состоять из числа больше 27 (9 + 9 + 9)
Полученные два числа записываются друг за другом в порядке невозрастания, значит идут в порядке убывания или могут быть равны.
Число 2525
1) 2 525 - не в том порядке
2) 25 25 - подходит ( 8+9+8+9+8)
3) 252 5 - 252 больше максимальной суммы
Число 256
1) 2 56 - не в том порядке
2) 25 6 - невозможно получить число 6
Число 2520
1)2 520 - не в том порядке
2) 25 20 - подходит (8+9+8+6+6)
3)252 0 - 252 больше максимальной суммы
Число 2528
1) 2 528 не в том порядке
2) 25 28 - не в том порядке
3) 252 8 - 258 больше максимальной суммы
Число 2825
1) 2 825 - не в том порядке
2) 28 25 - 28 больше максимальной суммы
3) 282 5 - 282 больше максимальной суммы
Число 2025
1) 2 025 - не в том порядке
2) 20 25 - не в том порядке
3) 202 5 - 202 больше максимальной суммы
Число 625
1) 6 25 - не в том порядке
2) 62 5 - 62 больше максимальной суммы
Число 106
1) 1 06 - не в том порядке
2) 10 6 - подходит (5+0+5+0+1)
Таким образом результатом работы автомата могут быть числа 2525 (исходное число — 88988), 2520 (исходное число — 89866), 106 (исходное число — 50501).
#include <iostream>
#include <vector>
#include <cstdlib>
using namespace std;
int main()
{
int a, b, n;
cout <<"Введите границы диапазона и размер массива:" <<endl;
cin >>a >>b >>n;
if(n>10000) n=10000;
vector<int> v(n);
srand(time(0));
cout <<"Исходный массив:" <<endl;
for(int i=0; i<v.size(); ++i)
{
v[i] = rand()%(b-a+1) + a;
cout <<v[i] <<" ";
}
cout <<"\n3х-значные элементы, не кратные 5:" <<endl;
for (int i=0; i<v.size(); ++i)
if ((v[i]>99) && (v[i]<1000) && (v[i]%5!=0))
cout <<v[i] <<" ";
cout <<endl;
return 0;
}