zoj 3733 Skycity 长沙赛区

这题真是做的让人火大。

是我的英语水平还不够好么???

题目是求一共需要多少面积的玻璃(最小)

比赛时一直A不出来,老是有100多的差值

这题确实难懂,阅读理解。


                                             


#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
const double pi=acos(-1.0);//π
struct 
{
	double jiaodu;//角度
	int tiao;//条数
	double banjin;//半径
}a[1005];
int main()
{
	int i;
	double R,r,H,F,S,gao,ca,area;//输入
	while(~scanf("%lf%lf%lf%lf%lf",&R,&r,&H,&F,&S))//!=EOF
	{
		ca=(R-r)/F,a[1].banjin=r;//半径是个等差数列
		gao=H/F;  //每一层高度
		area=0;   //面积
		S=S/2/gao;   //看图
		for(i=1;i<=F;i++)
		{
			a[i].jiaodu=atan(S/a[i].banjin);  //图上的角度
			a[i].tiao=pi/a[i].jiaodu;           //一楼有多少块玻璃的意思
			area+=a[i].tiao*tan(pi/a[i].tiao)*a[i].banjin*2.0*gao;//面积累加  玻璃的宽*高*一层的块数
			a[i+1].banjin=a[i].banjin+ca;         //一层楼的半径
		}
		printf("%0.3lf\n",area);
	}
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值