UVA 10451 Ancient Village Sports && UVA 11909 Soya Milk && UVA 11152 Colourful Flowers

三个纯数学计算题,WA了好几次,充分说明我是多么多么马虎!!!!

这三个题都涉及了好多三角函数,我用三角函数都用怕了,怕伤精度T T 。。

水题而已,贴一起吧。

第一个题求外接圆与多边形的面积差,内切圆与多边形的面积差。

第二个是求剩下的体积,那个体积是一个立方体的一半。不过当给的角度比较大的时候,剩余状况是另一种状况了。

第三题,求外接圆,内切圆面积神马的

#include <map>
#include <set>
#include <queue>
#include <stack>
#include <math.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <limits.h>
#include <string.h>
#include <string>
#include <algorithm>
#define MID(x,y) ( ( x + y ) >> 1 )
#define L(x) ( x << 1 )
#define R(x) ( x << 1 | 1 )
#define BUG puts("here!!!")
#define STOP system("pause")

using namespace std;

const double pi = acos(-1.0);

int main()
{
	int n;
	double area;
	int ind = 1;
	while( ~scanf("%d",&n) && n >= 3 )
	{
		scanf("%lf", &area);
		double ang = 2*pi/n;
		double l1 = sqrt(area*2/n/sin(ang));
		double a1 = pi*l1*l1;
		double l2 = l1*cos(ang/2);
		double a2 = pi*l2*l2;
		printf("Case %d: %.5lf %.5lf\n",ind++,a1 - area, area - a2);
	}

return 0;
}


#include <map>
#include <set>
#include <queue>
#include <stack>
#include <math.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <limits.h>
#include <string.h>
#include <string>
#include <algorithm>
#define MID(x,y) ( ( x + y ) >> 1 )
#define L(x) ( x << 1 )
#define R(x) ( x << 1 | 1 )
#define BUG puts("here!!!")
#define STOP system("pause")

using namespace std;

const double pi = acos(-1.0);
int main()
{
	double l,w,h,ang;
	
	while( ~scanf("%lf%lf%lf%lf", &l, &w, &h, &ang) )
	{
		double a1 = atan(h/l);
		double ans;
		if( ang/180*pi <= a1 )
		{
			double hh = l * tan(ang/180*pi);
			double V = l*w*h;
			double v = l*w*hh/2;
			ans = V - v;
		}
		else
			ans = h*h*tan(pi/2-ang/180*pi)*w/2;

		printf("%.3lf mL\n",ans);
	}

return 0;
}

#include <map>
#include <set>
#include <queue>
#include <stack>
#include <math.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <limits.h>
#include <string.h>
#include <string>
#include <algorithm>
#define MID(x,y) ( ( x + y ) >> 1 )
#define L(x) ( x << 1 )
#define R(x) ( x << 1 | 1 )
#define BUG puts("here!!!")
#define STOP system("pause")

using namespace std;

const double pi = acos(-1.0);
double area_triangle(double a,double b,double c)
{
	double p = (a+b+c)/2.0;
	return sqrt(p*(p-a)*(p-b)*(p-c));
}
double circumcir_r(double a,double b,double c)//已知三边求外接圆半径 
{
	return a*b*c/(4*area_triangle(a,b,c));
}
double incir_r(double a,double b,double c)//已知三边求内切圆半径 
{
	return 2*area_triangle(a,b,c)/(a+b+c);
}

int main()
{
	double a,b,c;
	
	while( ~scanf("%lf%lf%lf", &a, &b, &c) )
	{
		double r1 = circumcir_r(a,b,c);
		double a1 = r1*r1*pi;
		double r2 = incir_r(a,b,c);
		double a2 = r2*r2*pi;
		double a3 = area_triangle(a,b,c);
		printf("%.4lf %.4lf %.4lf\n",a1 - a3, a3 - a2, a2);
	}

return 0;
}


你可能感兴趣的:(c,System,数学计算)