小明在学走路,他妈妈担心他摔跤,准备在地板上划定一块区域并平铺上一层泡沫垫。已知这个区域为一个矩形,且面积为 n * m;每块泡沫垫为正方形,且大小为 a * a。
他妈妈是个强迫症,要求指定区域一定要被完全覆盖(泡沫垫实际覆盖的面积可以大于指定的区域),不允许对泡沫垫进行裁切,且要求泡沫垫的两边必须与区域的两边平行。
请你求出所需的泡沫垫的最少数量。
例子:红色为指定的地板区域 3 * 7 ,蓝色为铺上的泡沫垫 2 * 2。至少需要 8 块泡沫垫。
我自己的代码(没写完):
using namespace std;
int main()
{
double a,b,c,d;
cin>>a>>b>>c;
d=a*b;
if(d%(c*c)=0)
{
cout<<(a*b)/(c*c);
}
else
{
cout<<
}
}
cout<<(n/a+(n%a==1?1:0))*(m/a+(m%a==1?1:0))
#include <iostream>
using namespace std;
int main()
{
int a,m,n;
int l1,l2;
cin>>m >> n>>a;
if(m%a!=0)
l1 = m/a +1;
else
l1 = m/a;
if(n%a != 0)
l2 = n/a+1;
else
l2 = n/a;
cout << "块数:" << l1*l2 << endl;
return 0;
}
不需要那么复杂,给你一个优雅的算法,不需半个条件句
double a, b, c,d;
cin >> a >> b >> c;
d = 1.0 / 3 * 3;
cout <<"需要"<< ((int)(a / c + d))*((int)(b / c + d))<<"块";
运行结果