#UVa:10209-Is This Integration ?

灆洢 2011-12-01 21:22:41

要算面積,令邊長為a,一塊斜線的面積為x,一塊點狀的面積為y,一塊格子狀的面積為z。

則首先正方形的面積減去四分之一以a為半徑的圓的面積 = a*a – a*a*π/4 = y+2*z ->(1)

再來六分之一以a為半徑的圓的面積減去以a為邊長的正三角形(想想看在哪裡…) = a*a*π/6 – a*a*sqrt(3.0)/4 = 假設為某個面積w(想想看在哪裡…) ->(2)

接著把四分之一以a為半徑的圓的面積減去六分之一以a為半徑的圓的面積 = a*a*π/4 – a*a*π/6 = y+z+w ->(3)

則z=(y+2*z)-(y+z+w)+w=(1)-(3)+(2)就出來了,那麼y=(y+2*z)-(2*z)=(1)-2*z也出來了,而x=a*a-4*y-4*z也跟著出來了!

C++(0.044)

/*******************************************************/
/* UVa 10209 Is This Integration?                      */
/* Author: Maplewing [at] knightzone.studio            */
/* Version: 2011/12/01                                 */
/*******************************************************/
#include<iostream>
#include<cstdio>
#include<cmath>
#define PI (2.0*acos(0.0))
using namespace std;

int main(){
  double a;
  while( scanf( "%lf", &a ) != EOF ){
    double x, y, z;
    z = a*a - a*a*PI/4.0;
    z -= a*a*PI/4.0 - a*a*PI/6.0 - ( a*a*PI/6.0 - a*a*sqrt(3.0)/4.0 );
    y = a*a - a*a*PI/4.0 - 2.0*z;
    x = a*a - 4.0*y - 4.0*z;
    printf( "%.3lf %.3lf %.3lf\n", x, 4*y, 4*z );
  }
  return 0;
}

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料