-2

授業で少し助けが必要です これは、聞いたことがない場合はインドのアルゴリズムです。これは再帰を使えば簡単にできますが、ループを使って解決する方法がわかりませんか? ヒントや提案はありますか?

インドのアルゴリズム:

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;
}
4

1 に答える 1