好吧,我试过了,它不适用于 C++ 中的 ceil
int n, m, a;
double r1, r2;
cin >> n;
cin >> m;
cin >> a;
r1 = (n/a);
r2 = (m/a);
cout << (ceil(r1)*ceil(r2));
Run Code Online (Sandbox Code Playgroud)
在 n = 3 和 a =2 的情况下,n/a 操作应返回一个双精度值,但它不会
还..
在 m = 3 和 a =2 的情况下,m/a 操作应返回一个双精度值,但它不会
小智 6
这是问题所在,
n/a并且m/a将评估为整数,因为 n,m,a 是整数并且整数将被存储到 double 中,为避免这种情况,您可以像这样键入 cast
r1=(double)n/a;
r2=(double)n/a;
Run Code Online (Sandbox Code Playgroud)
或者简单地将 a 的数据类型从 int 更改为 double,也许(它会帮助你#A. Theatre Square)