您的位置:首页 > 其它

北大PKU在线测试1005

2015-04-21 17:09 260 查看
描述:弗雷德正在考虑购买一块路易斯安那州的土地来建立他的房子。在土地调查过程中,他了解到,由于密西西比河的侵蚀,路易斯安那州实际每年萎缩50平方英里。由于弗雷德希望在这所房子里度过余生,他需要知道,他的土地是否会被侵蚀掉。更多的研究后,弗雷德了解到,正在丧失的土地,形成一个半圆。此半圆是一个圆的中心在(0,0)的部分,即X轴与将这个圆平分。低于X轴的位置是在水中。第一年的时候,这个半圆的面积是0。(半圆形,图中示出。)



输入:输入的第一行,是一个正整数N。表明下面有几行的输入。接下来的N行中每行都包括一个X和Y(即他要买的那块地的笛卡尔坐标)。这些数都是浮点数且以英里为单位。Y轴坐标是非负的。(0,0)的位置将不给出。

输出:每一行的输入对应一行的输出,且输出形式是这样的。“Property N: This property will
begin eroding in year Z”,这里的N代表第几行的输入,Z必须是一个整数,输出完毕后,要求输出“END OF
OUTPUT.”

程序源代码:

#include<iostream>

using namespace std;

#define pi 3.14

int main(){

float (*in)[2];

float tem;

int i,j,n,k;

cin>>n;

in=new float
[2];

for(i=1;i<=n;i++)

cin>>in[i-1][0]>>in[i-1][1];

for(i=0;i<n;i++){

tem=in[i][0]*in[i][0]+in[i][1]*in[i][1];

for(j=1;;j++){

k=j*50;

if(2*k/pi>=tem)break;

}

cout<<"Property
"<<i+1<<":
This property will begin eroding in year
"<<j<<"."<<endl;

}

cout<<"END OF
OUTPUT."<<endl;

return 0;

}

对于这种题我就不解释了,实在是坑爹。看描述那么复杂,还画个图,还有提示。但是实际上很简单。装逼题目。唯一有点技术含量就是动态创建数组。大家要记住,如果你想实现多行输入,而且行的多少是用户键入的,必须使用动态输入。先声明float
(*in)[2];
输入n后 创建数组in=new
float
[2];
就ok了 自己看看吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: