C/C++の宿題を片付けます 89代目

このエントリーをはてなブックマークに追加
653デフォルトの名無しさん
>642
図形を手で書いたのなんて何年ぶりだろ。
#include <stdio.h>
#include <math.h>
#define E 1E-4
double inscribed(double s)
{
   return sqrt(s * s / (2 * (1 + sqrt(1 - s * s))));
}
double circumscribed(double s)
{
   return (sqrt(s * s + 1) - 1) / s;
}
int main(void)
{
   double s1 = sqrt(2) / 2, s2 = 1.0;
   int i = 4;
   while(s2 - s1 > E) {
      s1 = inscribed(s1);
      s2 = circumscribed(s2);
      i *= 2;
   }
   printf("%.2f\n", s1 * i);
   return 0;
}