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

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

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

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

Вход

6 6 4

Выход

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

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

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.   long long n, m, a, x, y;
  6.   long long result;
  7.   scanf("%lld", &n);
  8.   scanf("%lld", &m);
  9.   scanf("%lld", &a);
  10.  
  11.   if (n % a == 0) {
  12.     x = n / a;
  13.   }
  14.   else {
  15.     x = n / a;
  16.     x++;
  17.   }
  18.   if (m % a == 0) {
  19.     y = m / a;
  20.   }
  21.   else {
  22.     y = n / a;
  23.     y++;
  24.   }
  25.   result = x * y;
  26.   printf("%lld", result);
  27.  
  28.   return 0;
  29. }

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

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

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


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

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

13   голосов , оценка 3.769 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы