Найти вариант размещения на столе наибольшего количества костей - C (СИ)
Формулировка задачи:
Имеются стол прямоугольной формы с размерами a×b (a и b – целые числа, a > b) и кости домино с размерами c × d × e (c, d и e – целые числа, c > d > e). Найти вариант размещения на столе наибольшего количества костей. Все размещаемые кости должны лежать на одной и той же грани в один ярус без свешивания со стола. Все ребра костей домино должны быть параллельны или перпендикулярны каждой стороне стола. если можно с пояснениями
Решение задачи: «Найти вариант размещения на столе наибольшего количества костей»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b, c, d, e, x, x1, y, y1, sum, sum1;//a - длина стола,b - ширина,
//c - длина кости,d-ширина кости,e-толщина
printf("input table size, length > width:\n");
scanf("%d%d", &a, &b);//вводим длину и ширину стола
printf("input domino bones size, length > width > thickness:\n");
scanf("%d%d%d", &c, &d, &e);//вводим длину,ширину и толщину костяшки
x = a / d;//проверяем сколько костей ляжет повдоль длины стола
y = b / e;//и сколько по ширине
sum = x * y;//считаем общее количество костей
x1 = a / e;// проверяем тоже самое при раскладе вдоль ширины стола
y1 = b / d;
sum1 = x1 * y1;
printf("\n%d %d",sum, sum1);//печатаем для наглядности получившиеся количества
if(sum > sum1)//какое из количеств больше так и раскладываем кости
printf("\nDomino bones widfh along table length end up\n");
else
printf("\nDomino bones width along table width end up\n");
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Задаем переменные типа int для хранения размеров стола и костей
- Выводим сообщение с просьбой ввести размеры стола
- Считываем введенные пользователем значения в соответствующие переменные
- Вычисляем количество костей, которые можно расположить вдоль длины стола и ширины стола
- Считаем общее количество костей, которое можно расположить на столе
- Вычисляем количество костей, которые можно расположить вдоль ширины стола и длины стола
- Считаем общее количество костей, которое можно расположить на столе при раскладке вдоль ширины стола
- Сравниваем полученные значения и выбираем вариант раскладки с большим количеством костей
- Выводим сообщение о выбранном варианте раскладки
- Возвращаем 0, чтобы указать на успешный конец работы программы