关闭

POJ 1005

3718人阅读 评论(0) 收藏 举报
题目:密西西比河岸某处陆地因为河水侵蚀,每年陆地面积都在减少,每年减少50平方英里,减少的陆地面积呈半圆形,即该半圆形面积以每年50平方英里的速度增长。在第一年初时,该半圆形面积为0,半圆形的圆心坐标为(0,0),现在的任务是给定一个坐标,求出该坐标在哪一年年底会被河水侵蚀。假设给定的坐标到圆心的距离不会等于半圆的半径。

输入:第一行输入坐标个数,第二行开始输入坐标,每个坐标占一行,每个坐标由横坐标和纵坐标组成,坐标值为浮点数,单位为英里。
输出:输出该坐标会在哪一年年底开始被河水侵蚀。对应每个坐标输出一行,输出结束后输出 “END OF OUTPUT.”
解题思路:
    第一年年底半圆面积为 :½πr^2=50 即 πr^2 = 100,  πr^2/100 = 1
    第二年:πr^2 =200, πr^2/100 = 2
    第三年:πr^2 =300, πr^2/100 = 3
    。。。
    πr^2 每年增长100,对于给定的坐标,到圆心的距离平方为 d=x*x + y*y,计算πd /100,因为d不会等于某个半径,所以   πd /100结果一定是一个带小数的数,假设结果为n.m,则说明该坐标在第n年年底时还没被侵蚀,而在n+1年时会被侵蚀。


代码如下:

#include<stdio.h>
#include<math.h>

int main()
{
	int i,n;
	float pi,x,y,years;
	scanf("%d", &n);
	pi = acos(-1);

	for(i=1; i<=n; i++)
	{
		scanf("%f%f",&x,&y);
		
	    years = pi*(x*x + y*y)/100;
	    
	    printf("Property %d: This property will begin eroding in year %d.\n",i,(int)years+1);
	}
	printf("END OF OUTPUT.\n");

    return 0;
}





   
2
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:89225次
    • 积分:1455
    • 等级:
    • 排名:千里之外
    • 原创:55篇
    • 转载:0篇
    • 译文:0篇
    • 评论:17条
    文章分类
    最新评论
    友情链接