这题真是做的让人火大。
是我的英语水平还不够好么???
题目是求一共需要多少面积的玻璃(最小)
比赛时一直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;
}