天天看點

Tsinsen_ A1016. 縮小的陸地

問題描述   Fred正在考慮在路易斯安那州找一塊土地在上面建造他的房子。在調查過程中,他了解到路易斯安那州的陸地正以每年50平方英裡的速度縮小,原因是密西西比河對陸地的侵蝕。由于Fred希望他的餘生都能居住在這所房子裡,是以他需要知道他的土地是否會被河水侵蝕。

  Fred做了更多的研究後發現,正在損失的陸地呈現出一個半圓形的形狀,這個半圓是以(0,0)為圓心的圓的X軸以上的部分,X軸以下的區域是河水,在第一年開始時這個半圓的面積是0。(如下圖所示)

Tsinsen_ A1016. 縮小的陸地

輸入格式   第一行是一個正整數表示接下來有多少組資料,以下的每一行代表一組資料,每組資料由兩個浮點數組成,以空格隔開,分别代表Fred房子在平面内的坐标X和Y,機關是英裡,其中Y>=0。 輸出格式   對于每一組輸入資料,輸出一個整數Z,代表Fred的房子會在第Z年中被河水侵蝕。如果在第Z年結束時Fred的房子正好在半圓的邊界上,那麼應該算作是在第Z+1年被侵蝕,傳回Z+1。每個傳回結果占一行。 樣例輸入 2

1.0 1.0

25.0 0.0 樣例輸出 1

20

#include<stdio.h>
#define PI 3.141592653 
//考察圓的面積公式  S =  PI * R * R; 
int main() {
	int T, n;
	double a, b;
	scanf("%d", &T);
	while(T--) {
		n = 0;
		scanf("%lf %lf", &a, &b);   
		 // 盡量避免開根  浮點數的運算可能會存在誤差 
		 //是以不要比較半徑 
		while(100*n <= (a*a + b*b)*PI)  
			n++;
		printf("%d\n", n);
	}
	return 0;
}
           

繼續閱讀