閱讀765 返回首頁    go 阿裏雲 go 技術社區[雲棲]


poj 1005 I Think I Need a Houseboat

有一個水題,題目讀懂就可以了,千萬注意是“半圓”!!!


題目大意:已知一個圓心為(0,0),半徑隨時間增長的位於X軸上方的半圓,初始麵積為0,每年的麵積增加50,給出一個坐標,求該坐標在第幾年被該半圓覆蓋。

代碼:


#include <stdio.h>

int main()
{
	int n;
	scanf("%d",&n);

	int i;
	double x,y;
	int year;
	for(i=1;i<=n;i++)
	{
		scanf("%lf%lf",&x,&y);
			
		//如果以(x,y)為半徑的圓麵積小於水域麵積,就被淹沒了,這樣就不用求水域半徑了
		year=(int)((x*x+y*y)*3.1415926/100+1);	//根據坐標計算年份
		
		printf("Property %d: This property will begin eroding in year %d.\n",i,year);
	}
	printf("END OF OUTPUT.\n");

	return 0;
}


這段代碼寫的繁瑣點,不過思路更清晰


#include <stdio.h>

int main()
{
	int n;
	scanf("%d",&n);

	int i;
	double x,y;
	int year;
	int area;
	double s;
	for(i=1;i<=n;i++)
	{
		scanf("%lf%lf",&x,&y);
			
		//如果以(x,y)為半徑的圓麵積小於水域麵積,就被淹沒了,這樣就不用求水域半徑了
		s=3.1415926*(x*x+y*y)/2;
		area=0;
		for(year=1; ;year++)
		{
			area+=50;
			if(s<area)
				break;
		}
		
		printf("Property %d: This property will begin eroding in year %d.\n",i,year);
	}
	printf("END OF OUTPUT.\n");

	return 0;
}


最後更新:2017-04-03 14:53:43

  上一篇:go MM7彩信,SP錯誤狀態碼
  下一篇:go Linux係統中重啟tomcat的一般步驟