#include <stdio.h>
#include <stdlib.h>
double approx_pi(void);
int main(void) {
printf("pi = %lf\n", approx_pi
()); return EXIT_SUCCESS;
}
double approx_pi(void) {
double x, y, pi;
int count = 0;
for (int i = 1; i <= 1000; i++) {
x
= rand() / (double)(RAND_MAX
+ 1); y
= rand() / (double)(RAND_MAX
+ 1); if (x * x + y * y < 1) {
count++;
}
}
pi = 4 * count / (double)1000;
return pi;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmRvdWJsZSBhcHByb3hfcGkodm9pZCk7CgppbnQgbWFpbih2b2lkKSB7CiAgcHJpbnRmKCJwaSA9ICVsZlxuIiwgYXBwcm94X3BpKCkpOwogIHJldHVybiBFWElUX1NVQ0NFU1M7Cn0KCmRvdWJsZSBhcHByb3hfcGkodm9pZCkgewogIGRvdWJsZSB4LCB5LCBwaTsKICBpbnQgY291bnQgPSAwOwogIGZvciAoaW50IGkgPSAxOyBpIDw9IDEwMDA7IGkrKykgewogICAgeCA9IHJhbmQoKSAvIChkb3VibGUpKFJBTkRfTUFYICsgMSk7CiAgICB5ID0gcmFuZCgpIC8gKGRvdWJsZSkoUkFORF9NQVggKyAxKTsKICAgIGlmICh4ICogeCArIHkgKiB5IDwgMSkgewogICAgICBjb3VudCsrOwogICAgfQogIH0KICBwaSA9IDQgKiBjb3VudCAvIChkb3VibGUpMTAwMDsKICByZXR1cm4gcGk7Cn0=