题意:
给定一个圆弧边矩形,长a宽b,周长为400,且两边的圆弧同属一个圆。给出长宽比m:n,求长和宽
策略:列方程求解。
令k=n/m,则解出a = 200 / (1 + atan(k)*sqrt(1+k*k));
代码:
#include <iostream> #include <stdio.h> using namespace std; int main(){ // freopen("in.txt", "r", stdin); int m, n; int id = 1; while(scanf("%d : %d", &m, &n)!=EOF){ double k = n*1.0/m; double a = 200/(1+atan(k)*sqrt(1+k*k)); double b = a*k; printf("Case %d: %.10lf %.10lf\n", id++, a, b); } return 0; }