POJ 1005

描述

Fred Mapper 考慮在路易斯安那州買地蓋房子。在考察期間,他知道了路易斯安那州實際上由於密西西比河的侵蝕會每年以每年50平方英里的速度減少。因爲Fred希望在新房子裏度過餘生,他需要知道他的地是否會因爲侵蝕而受損。

在經過更多的調查時,Fred知道消失的土地會形成半圓。這個半圓以(0,0)爲圓心,位於X軸上半軸,X軸下部爲河流。半圓在第一年年初面積爲0.

輸入

第一行輸出爲正數,指示有多少數據集(N)。下面的N行中,每一行將包含Fred考察的土地的笛卡爾座標X,Y,均爲浮點數,單位爲英里。Y座標將爲非負數,數據中不包括(0,0)。

輸出

每個數據集中,每行輸出:
Property N: This property will begin eroding in year Z.
N爲數據集編號(從1數起),Z是第一年(從1開始),這個屬性將在年份Z的年底被包含在內。Z一定是整數,在數據集的最後,將輸出:
END OF OUTPUT.

輸入樣例

2
1.0 1.0
25.0 0.0

輸出樣例

Property 1: This property will begin eroding in year 1.
Property 2: This property will begin eroding in year 20.
END OF OUTPUT.

注意

1、屬性不會正好出現在半圓邊界上
2、所有的位置單位爲英里

思路

從面積爲0開始,從(0,0)處每年50平方米的速度呈半圓延伸,輸入一個正整數N,然後輸入N對座標,對於每一對座標值,求出面積擴展到該點需經歷多少年,座標值單位爲英里,所以:求半圓的面積除以50再加1就是年份。

#include <stdio.h>
#include <stdlib.h>
#define PI 3.1415926
int main(int argc, char *argv[])
{
    double case_num,x,y;
    int i,year;
    scanf("%lf", &case_num);
    for(i = 1; i<= case_num; ++i){
        scanf("%lf %lf", &x, &y);
        year = (int)(PI*(x*x + y*y)/100) + 1;
        printf("Property %d: This property will begin eroding in year %d.\n",
               i,year);
    }
    printf("END OF OUTPUT.\n");
    return 0;

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章