Решал пробник на егэ, как обычно, решал задачи, но в этой задаче встал в ступор, почему код работает неправильно. Вроде бы на логику и алгоритмику несколько раз проверил. Но почему-то выводит все равно 8 (правильный ответ: 888) Господа эксперты, помогите, пожалуйста, школьнику, сдающему егэ(
P.S. Спустя некоторое время заметил, что идет какая-то "рандомизация", бывает код ничего не выводит, бывает выводит больше восьмерок и т.д., как так?
Мой код#include <iostream>
using namespace std;
int main()
{
int x, y, k, S = 0;
bool flag = 1;
short number[69];
for(int i = 0; i < 69; i++) number[i] = 8;
while (flag) {
for(int i = 0; i < 69; i++) {
if(number[i] == 3) {x++; y = 0;}
else if(number[i] == 8) {y++; x = 0;}
else {x = 0; y = 0; S++;}
if(x == 4 || y == 4) {
S = 0;
if(number[i - 3] == 3 && number[i - 2] == 3 && number[i - 1] == 3 && number[i] == 3) {
number[i - 3] == 8; number[i - 2] == 8;
for(int m = i - 1; m < 67; m++) number[m] = number[m + 2];
k = k + 2;
for(int m = 69 - k; m < 69; m++) number[m] = 0;
} else {
number[i - 3] == 3; number[i - 2] == 3;
for(int m = i - 1; m < 67; m++) number[m] = number[m + 2];
k = k + 2;
for(int m = 69 - k; m < 69; m++) number[m] = 0;
}
break;
}
if(S > 68) flag = 0;
}
}
for(int i = 0; i < 69; i++) {
if(number[i] != 0) cout << number[i];
}
return 0;
}