授業で少し助けが必要です これは、聞いたことがない場合はインドのアルゴリズムです。これは再帰を使えば簡単にできますが、ループを使って解決する方法がわかりませんか? ヒントや提案はありますか?
インドのアルゴリズム:
3^10 = square (3^5)
3^5 = 3 * (3^4)
3^4 = square (3^2)
3^2 = square (3^1)
3^1 = 3 * (3^0)
3^0 = 1
double powerloop(double x, int n)
{
double m=x;
if (n==0)
return 1;
while(n>1)
{
if(n%2==0)
{
m=m*m;
n=n/2;
}
else
{
m=m*x;
n=n-1;
}
}
return m;
}