POJ 1005

题目:密西西比河岸某处陆地因为河水侵蚀,每年陆地面积都在减少,每年减少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;
}



 

                
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值