Какое наименьшее количество плит понадобится для замощения площади? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Театральная площадь в столице Берляндии представляет собой прямоугольник n × m метров. По случаю очередного юбилея города, было принято решение о замощении площади квадратными гранитными плитами. Каждая плита имеет размер a × a. Какое наименьшее количество плит понадобится для замощения площади? Разрешено покрыть плитами большую поверхность, чем театральная площадь, но она должна быть покрыта обязательно. Гранитные плиты нельзя ломать или дробить, а разрешено использовать только целиком. Границы плит должны быть параллельны границам площади.

Вход

6 6 4

Выход

4 Вот код:
#include<stdio.h>
 
main()
{
    int m,n,a;
    
    scanf("%d%d%d",&m,&n,&a);
    printf("%.f", ceil(m/(float)a)*ceil(n/(float)a));
}
Вопрос состоит в том, что программа не проходит все тесты - хотелось бы узнать по какой причине это может происходить?

Решение задачи: «Какое наименьшее количество плит понадобится для замощения площади?»

textual
Листинг программы
#include <stdio.h>
 
int main()
{
  long long n, m, a, x, y;
  long long result;
  scanf("%lld", &n);
  scanf("%lld", &m);
  scanf("%lld", &a);
 
  if (n % a == 0) {
    x = n / a;
  }
  else {
    x = n / a;
    x++;
  }
  if (m % a == 0) {
    y = m / a;
  }
  else {
    y = n / a;
    y++;
  }
  result = x * y;
  printf("%lld", result);
 
  return 0;
}

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

В этом коде сначала запрашиваются входные данные: количество плиток в одном направлении (n), количество плиток в другом направлении (m) и размер одной плитки (a). Затем код проверяет, можно ли замостить площадь горизонтально. Если количество плиток в одном направлении делится на размер одной плитки без остатка, то это возможно. В этом случае переменной x присваивается значение количества плиток в одном направлении, разделённое на размер одной плитки. Если же остаток от деления не равен нулю, то площадь нельзя замостить горизонтально, и тогда переменной x присваивается значение количества плиток в одном направлении, увеличенное на единицу. Аналогично проверяется возможность замостить площадь вертикально. Если количество плиток в другом направлении делится на размер одной плитки без остатка, то это возможно. В этом случае переменной y присваивается значение количества плиток в другом направлении, разделённое на размер одной плитки. Если же остаток от деления не равен нулю, то площадь нельзя замостить вертикально, и тогда переменной y присваивается значение количества плиток в другом направлении, увеличенное на единицу. Затем площадь рассчитывается как произведение количества плиток в одном направлении на количество плиток в другом направлении, и результат выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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