В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
MorFeyrka
MorFeyrka
29.05.2022 16:52 •  Информатика

Всем привет! У меня есть произвольная фигура (массив с позициями квадратов 1*1), мне нужно ее разделить на прямоугольники и сделать массив, который хранит начало и конец каждого прямоугольника(startX, startY, endX, endY). Выполнить нужно на C#. В приложении есть пример фигуры до и после разбиения на прямоугольники. Прямоугольников должно быть минимальное количество.


Всем привет! У меня есть произвольная фигура (массив с позициями квадратов 1*1), мне нужно ее раздел
Всем привет! У меня есть произвольная фигура (массив с позициями квадратов 1*1), мне нужно ее раздел

Показать ответ
Ответ:
kingoflfmvd
kingoflfmvd
20.09.2021 17:35
Для перевода числа из десятичной системы счисления в двоичную нужно делить это число на 2 до тех пор, пока не получим ноль, и остатки выписывать.
Делить нужно нацело, то есть дробной части быть не должно.

9 / 2 = 4, остаток 1
4 / 2 = 2, остаток 0
2 / 2 = 1, остаток 0
1 / 2 = 0, остаток 1

Теперь записываем остатки снизу вверх (хотя тут не важно): 1001

9(10) = 1001(2).

Второй

9 = 8 + 1 = 2^3 + 2^0

Число 2 в какой-либо степени в системе счисления с основанием 2 представляет собой единицу, после которой идут нули, количество которых равно этой степени:

2^3 = 1000(2)
2^1 = 1(2)

1000(2) + 1(2) = 1001(2)
0,0(0 оценок)
Ответ:
kefir9
kefir9
14.03.2021 23:20
// PascalABC.NET 3.2, сборка 1379 от 21.01.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var ЕстьКусков,НадоКусков:integer;
  Readln(ЕстьКусков,НадоКусков);
  var Длины:=ReadArrInteger(ЕстьКусков);
  var ОбщаяДлина:=Длины.Sum;
  if НадоКусков>ОбщаяДлина then Writeln(0)
  else begin
    var ДлинаКуска:=ОбщаяДлина div НадоКусков;
    repeat
      if Длины.Select(Кусок->Кусок div ДлинаКуска).Sum >=НадоКусков then break
      else ДлинаКуска-=1;
    until false;
    writeln(ДлинаКуска)
    end
end.

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