>>609
double をループカウンタに使うのは
数値誤差があるんでやめた方がいいと思うが...。
ループカウンタには int を使って、
同時にそれに対応する double 値が得られる工夫をするべし。

再帰が問題になるかは、実際に再帰してみてから考えれ。
それほど関数呼び出しのオーバーヘッドが問題にならないかもしれないし。