Автор Dd dd задал вопрос в разделе Другие языки и технологии
Задача, С# и получил лучший ответ
Ответ от Velik velik[мастер]
Для решения задачи на C# проверяем, можно ли разместить два прямоугольных дома на участке размерами X на Y, поворачивая их только на 90 градусов. Дома имеют размеры a1 на b1 и a2 на b2. Перебираем все 4 комбинации ориентации домов и для каждой проверяем два варианта: дома стоят рядом по стороне X (сумма ширин не больше X, обе высоты не больше Y) или по стороне Y (сумма высот не больше Y, обе ширины не больше X). Если хоть один вариант проходит, ответ — можно.bool CanPlace(double X, double Y, double a1, double b1, double a2, double b2)
{
double[] w1 = {a1, b1}, h1 = {b1, a1};
double[] w2 = {a2, b2}, h2 = {b2, a2};
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; j++)
{
if (w1[i] + w2[j] <= X && h1[i] <= Y && h2[j] <= Y) return true;
if (h1[i] + h2[j] <= Y && w1[i] <= X && w2[j] <= X) return true;
}
return false;
}
Дима Гуляев
вот потому что размеры могут быть любыми и не говорите что "может".
ответ должен быть правильным для любых заданных параметров.
для этого программа и пишется...
Что-то из задачи вообще не ясно, что писать то надо. Хз, если тут есть гении-телепаты, то может догадаются. Просто задача спрашивает, а не даёт задание. Мой ответ: "Можно", так как размеры я вообще любые могу написать. Ладно так уж и быть, вот код:
using System;
using System.Runtime.InteropServices;
namespace ConsApp_Reflection
{
class Program
{
[DllImport("user32.dll")]
private static extern int ExitWindowsEx(int uFlags, int dwReason);
public static void Shutdown()
{
ExitWindowsEx(1, 0);
}
static void Main()
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Пожалуйста подождите, компьютер думает над задачей...
");
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("Однозначно, можно! ");
Console.ReadKey();
Program.Shutdown();
}
}
}
Код - безусловно лень писать. Первое правило спрашивающего: вопрос должен быть не короче ожидаемого ответа.
А про паралельность сторонам - просто чтобы не ламать голову на тему поворотов. Так правило простое: влезают оба дома, если одна из сторон каждого меньше X или Y, а сумма других сторон - меньше Y или X, соответственно.
как решать задачи с дробями
Как решать задачи с дробями.
Чтобы решить задачу с дробями, нужно научиться делать с
подробнее...
как решить задачи с процентами
Решение задач на проценты строится на базовом правиле: один процент это одна сотая часть числа, или
подробнее...
как решать задачи с множествами?
Первый значёк -( подковка с ножками вверх) - это ОБЪЕДИНЕНИЕ. Это значит, что нужно составить
подробнее...
как решать уравнения с модулями
Наиболее часто используемый способ решения задач с модулем состоит в том, что модуль раскрывается
подробнее...
ПОМОГИТЕ с задачами по теории вероятности
С одной игральной костью дело обстоит до неприличия просто. Напомню, что вероятность находится по
подробнее...
Как подготовиться к ЕГЭ по физике с нуля за 4 месяца? БЕЗ РЕПЕТИТОРОВ если
Итак, пошаговый план ваших действий: 1)Разделить всю программу подготовки на 5 основных тем
подробнее...
как включить диспетчер задач на компе!?!?
Если при попытке запустить Диспетчер задач Windows (любым способом – или с помощью Ctrl+Alt+Del,
подробнее...
На Windows 10 панель задач поверх всех окон. Как это отключить?
Через Диспетчер задач завершите процесс explorer.exe (проводник), затем в верхнем меню "Файл -->
подробнее...
Как решать задачи на доли ?
Как решить задачу с частями
Одними из интереснейших задач в математике являются задачи
подробнее...
Как включить диспетчер задач, если написано что диспетчер задач отключён администратором?
Что делать, если появляется сообщение «Диспетчер задач отключен администратором» . +18+19/-1
подробнее...