程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> NYOJ 6 噴水裝置(一)

NYOJ 6 噴水裝置(一)

編輯:C++入門知識

噴水裝置(一)

時間限制:3000 ms | 內存限制:65535 KB 難度:3
描述 現有一塊草坪,長為20米,寬為2米,要在橫中心線上放置半徑為Ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數Ri(0輸入第一行m表示有m組測試數據
每一組測試數據的第一行有一個整數數n,n表示共有n個噴水裝置,隨後的一行,有n個實數ri,ri表示該噴水裝置能覆蓋的圓的半徑。輸出輸出所用裝置的個數樣例輸入
2
5
2 3.2 4 4.5 6 
10
1 2 3 1 2 1.2 3 1.1 1 2
樣例輸出
2
5
#include "stdio.h"
#include "math.h"
#define N 600+10
float a[N];

int main()
{
	int m,n,i,j;
	float x,temp;	//注意 此處的變量為浮點類型不要習慣性的定義為整型,否則會出現錯誤 
	scanf("%d",&m); a[0]=0;
	while(m--)
	{
		scanf("%d",&n);
		for(i=1;i<=n;i++) scanf("%f",&a[i]);
			
		for(i=1;i<=n;i++)  //從小到大排序 
			for(j=i+1;j<=n;j++) if(a[i]>a[j]) 
				{temp=a[i]; a[i]=a[j];a[j]=temp;}	
				
		x=10;i=n;
		while(a[i]>1 && x>0 ) x-=sqrt(a[i]*a[i--]-1.0); 
				
		printf("%d\n",n-i);
	}	
	return 0;
} 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved