>>181
1. double をループカウンタにしないのが吉。
  数値誤差が溜まって、正確にループできないことが頻繁にある。

2. 関数の結果を一時変数に入れて、それをループのリミットとすること。
  何度も pow を呼ぶのは非効率。

pow の結果が整数なら、

int i;
int limit = (int)(pow(...) + 0.5);
for(i = 0; i < limit; i++) { ... }

とするべし。