题目
题目描述
用 \(a \times a\) 的石板覆盖 \(n \times m\) 的长方形广场,允许石板覆盖的区域超出广场,不允许打破石板,石板的两侧应平行于广场两侧,要求覆盖完广场所需的石板数量最少是多少。
输入格式
输入有三个数字 \(n,m,a\) (\(1≤n,m,a≤10^9\))
思路
首先,我们看到是广场是长方形的,而石板是正方形的,很容易就想到可能会出现一中特殊情况:(广场的面积不足以铺一个石板),还会想到将长和宽一起除以石板边长,就是这个边所可以容纳多少个石板边长,最后再将所得的个数相乘,就是我们的答案了。
\(AC\) 代码:
#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
long long n,m,a;
cin>>n>>m>>a;
cout<<(long long)(ceil(n/(double)a)*ceil(m/(double)a))<<endl;//注意一定要long long 不然就会强制转换为科学计数法
return 0;
}