公比級数の値もとめるだけなら

初期値  :a
公比   :r
求める項数:n
として
a-a*r^n/(1-r)
で求められる。

double power(double x,unsigned int n)
{
int temp = 0; double result;
while(n&1) { int>>=1; temp=1; };
result = power(x,n-1) * x;
for(;temp > 0;--temp) result *=result;
return result;
}

double calc(double init,double ratio,unsigned int n)
{ return a*(1-power(ratio,n))/(1-ratio); };

割り算あるからnが小さいと遅い…
あと項数が複数あってもダメ…
といろいろ束縛あるなぁ…
わざわざpower書いたのも馬鹿っぽいしなぁ