C++ Zoj1049 I Think I Need a Houseboat
阿新 • • 發佈:2019-01-07
題目大意:
判斷什麼時候50*z(z為年數)形成的半圓,能把給出的(x, y)包含進去,就是(x,y)座標什麼時候能在這個半圓內。
求出這個z
思路:
求以(x,y)-(0,0)為半徑,(0,0)為圓心的半圓的面積,然後除以50,向上取整ceil,得到的就是z
#include <iostream> #include <cmath> using namespace std; const double PI = acos(double(-1)); int main(int argc, const char * argv[]) { double x, y, area; // 儲存x,y座標 int n, z, kcase = 1; // n儲存測試組數,z儲存年數, kcase跟蹤測試組數 cin >> n; while(n--) { // 測試組數 cin >> x >> y; // 半圓面積公式:s=1/2 * PI * r * r;(r * r = x * x + y * y) area = PI * (x * x + y * y) / 2; z = ceil(area / 50); // 向上取整 cout << "Property " << kcase << ": This property will begin eroding in year " << z << "." << endl; kcase++; } return 0; }
執行結果: