数组B:我想我需要一艘船屋

Fred Mapper is considering purchasing some land in Louisiana to build his house on. In the process of investigating the land, he learned that the state of Louisiana is actually shrinking by 50 square miles each year, due to erosion caused by the Mississippi River. Since Fred is hoping to live in this house the rest of his life, he needs to know if his land is going to be lost to erosion.

After doing more research, Fred has learned that the land that is being lost forms a semicircle. This semicircle is part of a circle centered at (0,0), with the line that bisects the circle being the X axis. Locations below the X axis are in the water. The semicircle has an area of 0 at the beginning of year 1. (Semicircle illustrated in the Figure.)

Input

The first line of input will be a positive integer indicating how many data sets will be included (N). Each of the next N lines will contain the X and Y Cartesian coordinates of the land Fred is considering. These will be floating point numbers measured in miles. The Y coordinate will be non-negative. (0,0) will not be given.

Output

For each data set, a single line of output should appear. This line should take the form of: “Property N: This property will begin eroding in year Z.” Where N is the data set (counting from 1), and Z is the first year (start from 1) this property will be within the semicircle AT THE END OF YEAR Z. Z must be an integer. After the last data set, this should print out “END OF OUTPUT.”

Sample Input

2
1.0 1.0
25.0 0.0

Sample Output

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

Hint

1.No property will appear exactly on the semicircle boundary: it will either be inside or outside.
2.This problem will be judged automatically. Your answer must match exactly, including the capitalization, punctuation, and white-space. This includes the periods at the ends of the lines.

3.All locations are given in miles.

实验代码

#include<stdio.h>
#include<math.h>
#define pi 3.1415927
int main()
{
	int n,i=1;
	int year;
	double x,y,r,s;  //定义浮点型变量,x,y,半径,面积
	scanf("%d",&n);
	while(n--)
	 {
	 	scanf("%lf%lf",&x,&y);
	 	r=x*x+y*y;      //求半径的平方
	 	s=pi*r/2.0;  //求半圆的面积
		year=(int)ceil(s/50.0);  /*ceil函数:返回大于等于表达式的最小整数
		例如:ceil(15.8)=16,ceil(-15.8)=-15*/
		printf("Property %d: This property will begin eroding in year %d.\n",i++,year);
	  }
	  printf("END OF OUTPUT.\n");
	  return 0;
}

  

原文地址:https://www.cnblogs.com/lqx0123/p/10247375.html

时间: 2024-11-14 14:27:14

数组B:我想我需要一艘船屋的相关文章

我想我需要一艘游艇

我想我需要一艘游艇 描述(poj1005) 弗雷德Mapper路易斯安那州正在考虑购买一些土地建造他的房子.在调查的过程中,他了解到路易斯安那州实际上减少了50平方英里,每年因腐蚀造成的密西西比河.因为弗雷德希望住在这所房子里他的余生,他需要知道他的土地将是输给了侵蚀. 做更多的研究之后,弗雷德获悉的土地失去了形成一个半圆.这个半圆是圆的一部分集中在(0,0),将圆的线被X轴.位置在X轴是在水里.半圆的面积在年初1 0.(半圆示图.) 输入 输入的第一行将一个正整数表示有多少数据集将包含(N).

写代码可以在整型有序数组中查找想要的数字

思路:对数组中的数字进行查找并与目标数字进行比较,一样则可以找到,不一样则没有. 方法一:在有序的数组中查找一个数字,可以用一个循环的方式将每一个数字依次查找然后挑出所求数字. 1 #include<stdio.h> 2 #define _CRT_SECURE_NO_WARNINGS 3 4 int Find_num(int a[], int size, int num) 5 { 6 for (int i = 0;i < size; i++) 7 { 8 if (a[i] == num)

如何用二分法在有序数组中找到你想要的数字

//二分法的函数部分://将要找的数字与中间的数字进行比较,比较后将下标移动//比较部分是数字,改变部分是下标 #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h> int Search(int arr[], int key,int left, int right){while (left <= right){int mid =left + (right-left) / 2;//中间下标的计算

C语言编程 在整型有序数组中查找想要的数字并且返回下标

遇到"有序"数组中查找元素类的题,优先考虑折半查找(二分查找) 做法核心是利用所定义的下标left和right与mid(由计算得来)下标的比较来逐渐缩短查找范围,达到一个阈值后即为找到. 源代码如下: #include<stdio.h> #include<stdlib.h> int search(int a[], int x, int left, int right)//定义二分查找函数 { while (left <= right) { int mid

数据结构与算法(刺猬书)读书笔记(1)----数组

在JavaScript中,数组其实是一种特殊的对象,用来表示偏移量的索引是该对象的属性,所以JavaScript的数组本质上是对象.同时这些数字索引在内部会被转换成为字符串类型,因为JavaScript对象中的属性名必须是字符串.此外,JavaScript数组还有一个特点,就是数组的每一项可以保存任何类型的数据,而且,数组的大小是可以动态调整的. 1. 创建数组 数组的创建方法有两种,第一种是简单的声明一个数组变量: var numbers = []; var numbers = [1, 2,

c语言的数组与字符串

在c语言中一般是没有办法直接定义定义字符串数据类型的:但是我们可以使用数组来定义我们想要的字符串.一般有以下两种方式: 1.char 字符串名称[长度] = "字符串值"; char 字符串名称[长度] = {'字符1','字符2',...,'字符n','\0'}; 注意: 1.[]中的长度是可以省略不写的: 2.采用第2种方式的时候最后一个元素必须是'\0','\0'表示字符串的结束标志: 3.采用第2种方式的时候在数组中不能写中文,只能由单个的字符串组成.需要注意的是空格也算一个字

JavaScript基础学习(三)&mdash;数组

一.数组简介     JavaScript数组的每一项都可以保存任何类型的数据,也就是说数组的第一个位置保存字符串,第二个位置可以保存数值,第三个位置可以保存对象,而且数组的大小是可以动态调整的,即可以随着数据的添加而自动增长以扩容纳新增数据.   二.数组的操作 1.创建 //创建一个空数组 var arr = []; var arr2 = [1,true,new Date()]; arr2.length = 2; alert(arr2); //true   2.pop和push方法     

数组的创建和操作

array 数组 创建方法的方法 1.var arr = new Array(); arr[0] = 1; arr[1] = 2; arr[2] = 3; 创建一个内容为1,2,3的数组 2.var arr = new Array(5); 创建一个长度为5的数组 3.var arr = new Array(1, 2, 3); 创建一个内容为1,2,3的数组 4.var arr = [1, 2, 3]; 数组的操作 1.数组名.shift(); 删除第一个元素,并返回该值 var arr = [1

java基础语法 数组

数组是相同数据类型元素的集合   数组本身是引用数据类型,即对象.但是数组可以存储基本数据类型,也可以存储引用数据类型. 在java中如果想要保存一组基本类型的数据,使用数组:如果想保存一组对象或者其他类型的复杂数据可以使用集合. 数组的举例 int [] a = new int []{1,2,3,4,5}; String [] s = new String []{"小熊","小小熊","小小小熊"}; Employee [] e=new Emp