Вопрос задан 22.07.2018 в 15:13. Предмет Информатика. Спрашивает Голишников Николай.

Помогите решить задачу на c++. Последовательность из нулей и единиц четной длины назовем

справедливой, если на четных местах этой последовательности столько же единиц, сколько на нечетных. Например, последовательность «011011» является справедливой, а последовательность «011101» — нет. Задана некоторая последовательность нечетной длины из нулей и единиц. Из нее разрешается удалить одну цифру. Какую цифру следует удалить, чтобы последовательность стала справедливой? Например, из последовательности «0111011» с этой целью можно удалить вторую цифру. Значения переменных могу дать.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Горбунова Кристина.

Program Numbers;
Uses Crt;
Var
n,k: Integer;
Begin
ClrScr;
WriteLn('Для выхода введи -1');
k:=0;
Repeat
Write('Введи число: ');
ReadLn(n);
If n mod 2 = 0 Then
begin WriteLn('Четное: ', n); k:=k+1; end;
Until n = -1;
WriteLn('Количество четных: ', k);
ReadLn;
End.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи на C++ можно использовать следующий алгоритм:

1. Создать переменные для хранения количества нулей и единиц на четных и нечетных позициях. 2. Пройти по всей последовательности и подсчитать количество нулей и единиц на четных и нечетных позициях. 3. Найти разницу между количеством нулей и единиц на четных и нечетных позициях. 4. Если разница равна 1, то удалить одну цифру, которая находится на позиции, где количество единиц больше. 5. Если разница равна -1, то удалить одну цифру, которая находится на позиции, где количество нулей больше. 6. Если разница равна 0, то удалить любую цифру, так как последовательность уже справедливая.

Пример кода на C++:

```cpp #include #include using namespace std;

int main() { string sequence = "0111011"; int count_even_zeros = 0, count_even_ones = 0, count_odd_zeros = 0, count_odd_ones = 0;

for (int i = 0; i < sequence.length(); i++) { if (i % 2 == 0) { if (sequence[i] == '0') { count_even_zeros++; } else { count_even_ones++; } } else { if (sequence[i] == '0') { count_odd_zeros++; } else { count_odd_ones++; } } }

int diff = (count_even_zeros + count_odd_ones) - (count_even_ones + count_odd_zeros); int remove_index = -1;

if (diff == 1) { for (int i = 0; i < sequence.length(); i += 2) { if (sequence[i] == '1') { remove_index = i; break; } } } else if (diff == -1) { for (int i = 1; i < sequence.length(); i += 2) { if (sequence[i] == '0') { remove_index = i; break; } } } else { remove_index = 0; // Удаляем любую цифру }

cout << "Индекс цифры для удаления: " << remove_index << endl;

return 0; } ```

Этот код позволит найти индекс цифры, которую нужно удалить, чтобы последовательность стала справедливой.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос