?せんたくいた #7778(2008/10/11 00:33 GMT) [ Bash ] Rating0/0=0.00
前半は半径rの1/4円の面積aを求めています。 後半では面積aを単純に4倍し、r*rで割ってpiを求めたかったのですが、 bashでは小数を持てないので、小数部分を10倍しながら表示しています。 $ ./pi.sh 100 3.1416 $ ./pi.sh 241 3.1400974 $ ./pi.sh 1000 3.141548
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#/bin/bash r="$1" a=0 for ((x=1;x<=r;x++)) { for ((y=0;y<r;y++)) { if ((x*x+y*y<=r*r));then a=$((a+1)) else break fi } } z=$((a*4));m=$((z/(r*r))) echo -n $m z=$((z-m*r*r)) if ((z));then echo -n . fi for ((i=1;i<8&&z>0;i++)) { n=$((z*10/(r*r))) z=$((z*10-n*r*r)) echo -n $n } echo
Rating0/0=0.00-0+
[ reply ]
?せんたくいた #7778() [ Bash ] Rating0/0=0.00
Rating0/0=0.00-0+
[ reply ]