mileshka890
16.07.2022 02:15

Содержание ↑ В этой задаче вам нужно картинку из чёрных и белых пикселей закодировать как можно более короткой строкой по описанным ниже правилам.
Картинка представляет собой прямоугольную таблицу, каждая клеточка которой покрашена в чёрный или белый цвет. Сначала чёрные клеточки обозначаются буквой «B», белые клеточки обозначаются буквой «W». Затем буквы из таблицы записываются подряд в одну строку: сначала первая строка, затем вторая и т. д.
Например, пусть дана следующая картинка:

Обозначим клеточки буквами

Теперь запишем все буквы в одну строку: «WBBBWBBBW».
Далее эту строку можно сжать, используя следующие правила.
Если перед буквой записано число, то это означает повторение данной буквы указанное число раз. Например, вместо «BBB» можно написать «3B».
После числа можно написать не одну букву, а последовательность букв в скобках.
Например, запись «4(BW)» будет означать последовательность «BWBWBWBW».
Также внутри скобок могут быть записаны не только буквы «B» и «W», но и любые правильно закодированные последовательности, в т.ч. содержащие числа и скобки.
Приведённую выше картинку можно закодировать, например, таким
Дана следующая картинка. Закодируйте её при как можно более короткой последовательности.

ответ на эту задачу необходимо записать в виде строки, состоящей из букв «B» и «W», чисел и скобок, последовательность должна быть корректной и после распаковки должна соответствовать приведённой картинке. При сдаче задачи проверяется корректность последовательности и то, что в результате распаковки будет получена данная картинка. Если последовательность некорректна или не соответствует картинке, ваше решение получит статус «Неверный формат ответа».
Чем короче будет ваше решение, тем больше вы получите. При подсчёте длины решения учитываются все символы: буквы, цифры и скобки.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
dmit0
09.11.2022 09:54

Запишу сразу в виде готовой программы:

var

x, a, b, c, d: real;

begin

x := 0.33;

a := Log10(Exp(x + 2));

b := 2 * Pi / Tan(45 * Pi / 180);

c := 3.14 * ArcSin(x);

d := Sqr(Tan(Sqr(x))) + Exp(Cos(x));

Writeln(a);

Writeln(b);

Writeln(c);

Writeln(d);

end.

Здесь в примере b, котангенс 45 -видимо имеется ввиду градусов (и поэтому там умножено на Pi / 180, чтобы перевести в радианы- ведь в Паскале все тригонометрические функции используют радианы). Но, если это имеется ввиду 45 радиан, то этот множитель нужно убрать.

Там же, вместо котангенса используется единица делённая на тангенс (т.к. функции котангенса в Паскале вроде нет).

Ну, можно и выписать оттуда сами выражения отдельно, как просят в задаче (только работать вне программы это всё равно не будет):

a) Log10(Exp(x + 2))

b) 2 * Pi / Tan(45 * Pi / 180)

c) 3.14 * ArcSin(x)

d) Sqr(Tan(Sqr(x))) + Exp(Cos(x))

0,0(0 оценок)
Ответ:
Ленчикбарми
08.06.2022 22:39

Код программы:

#include <iostream>

#include <locale>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

int *a, N, sum, numb;

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

cin >> N;

a = new int[5];

cout << "Введите "<<N<<" чисел:"<<endl;

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

 cin >> a[i];

numb = 0;

sum = a[0] + a[1];

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

 if (a[i] > sum) {

  numb = i;

  break;

 }

 else {

  sum += a[i];

 }

}

if (numb != 0)

 cout <<"Номер числа: "<< ++numb << endl;

else

 cout << "Такого числа нет" << endl;

}

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота