Найти вариант размещения на столе наибольшего количества костей - 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;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Задаем переменные типа int для хранения размеров стола и костей
  3. Выводим сообщение с просьбой ввести размеры стола
  4. Считываем введенные пользователем значения в соответствующие переменные
  5. Вычисляем количество костей, которые можно расположить вдоль длины стола и ширины стола
  6. Считаем общее количество костей, которое можно расположить на столе
  7. Вычисляем количество костей, которые можно расположить вдоль ширины стола и длины стола
  8. Считаем общее количество костей, которое можно расположить на столе при раскладке вдоль ширины стола
  9. Сравниваем полученные значения и выбираем вариант раскладки с большим количеством костей
  10. Выводим сообщение о выбранном варианте раскладки
  11. Возвращаем 0, чтобы указать на успешный конец работы программы

Оцени полезность:

10   голосов , оценка 4.2 из 5
Похожие ответы