#include <stdio.h>
#include <math.h>
#define BUNKATU 10 /*分割数を定義*/
int main(void) {
double jouteiy,kateiy,jouteix,kateix,I,MENSEKI,MENSEKI1,MENSEKI2;/*変数を定義*/
kateiy = 1.0;/*台形の下底部分*/
kateix = 0;/*台形の上底部分*/
I = 1.0/BUNKATU;/*台形一つ分の高さ*/
MENSEKI1 = 0;/*面積(台形を足し合わせた部分)*/
int i;
for (i = 1;i <= BUNKATU-1;i++) {
jouteix = i * I;
jouteiy
= sqrt(1.0 - jouteix
* jouteix
);
MENSEKI1 += ((kateiy + jouteiy) * I / 2.0);
kateiy = jouteiy;
kateix = jouteix;
}
MENSEKI2
= I
*sqrt(1.0-(BUNKATU
-1.0)*(BUNKATU
-1.0))/2.0;MENSEKI = MENSEKI1+MENSEKI2;
printf ("円周率:%f\n",BUNKATU
,MENSEKI
*4.0);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CiNkZWZpbmUgQlVOS0FUVSAxMCAgLyrliIblibLmlbDjgpLlrprnvqkqLwogCmludCBtYWluKHZvaWQpIHsKZG91YmxlIGpvdXRlaXksa2F0ZWl5LGpvdXRlaXgsa2F0ZWl4LEksTUVOU0VLSSxNRU5TRUtJMSxNRU5TRUtJMjsvKuWkieaVsOOCkuWumue+qSovCiAKa2F0ZWl5ID0gMS4wOy8q5Y+w5b2i44Gu5LiL5bqV6YOo5YiGKi8Ka2F0ZWl4ID0gMDsvKuWPsOW9ouOBruS4iuW6lemDqOWIhiovCkkgPSAxLjAvQlVOS0FUVTsvKuWPsOW9ouS4gOOBpOWIhuOBrumrmOOBlSovCk1FTlNFS0kxID0gMDsvKumdouepje+8iOWPsOW9ouOCkui2s+OBl+WQiOOCj+OBm+OBn+mDqOWIhu+8iSovCiAKaW50IGk7IAogCmZvciAoaSA9IDE7aSA8PSBCVU5LQVRVLTE7aSsrKSB7CmpvdXRlaXggPSBpICogSTsKam91dGVpeSA9IHNxcnQoMS4wIC0gam91dGVpeCAqIGpvdXRlaXgpOwogCk1FTlNFS0kxICs9ICgoa2F0ZWl5ICsgam91dGVpeSkgKiBJIC8gMi4wKTsKIAprYXRlaXkgPSBqb3V0ZWl5OwprYXRlaXggPSBqb3V0ZWl4Owp9CiAKTUVOU0VLSTIgPSBJKnNxcnQoMS4wLShCVU5LQVRVLTEuMCkqKEJVTktBVFUtMS4wKSkvMi4wOwpNRU5TRUtJID0gTUVOU0VLSTErTUVOU0VLSTI7CiAKcHJpbnRmICgi5YaG5ZGo546HOiVmXG4iLEJVTktBVFUsTUVOU0VLSSo0LjApOwogCnJldHVybiAwOwp9CiAK