题意:Fred想在一个地方买房子,这个地方受密西西比河侵蚀每年会被淹50平方英里,他想知道他选的地方多少年会开始被淹。
如图半圆形为这个地方的全部大小,水会以坐标原点为圆心每年向外以半圆形扩散50
ps:原题说整个半圆面积为1......都不够淹的。
再进一步就是求满足 n*50 Π 的最小n值
代码如下
#include<iostream>
using namespace std;
int howmany_years(double x, double y) {
double r2 = x * x + y * y;
double s = 0.5 * 3.14 * r2;//这里的0.5我曾经写的是1/2,结果导致无论输什么都是1年,因为1/2的结果是0而不是想象中的0.5
return (s / 50+1);
}
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++)
{
double x, y;
cin >> x >> y;
int n=howmany_years(x, y);
cout<< "Property " << i << ": This property will begin eroding in year " << n << '.' << endl;
}
cout << "END OF OUTPUT." << endl;
return 0;
}
注意类型转换