C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++でpow(x、y)の反復O(Log y)関数を記述します


この問題では、2つの整数xとyが与えられます。私たちのタスクは、0(Log y)の時間計算量でタスクを完了する反復アプローチを使用して、pow(x、y)と同等の関数を作成することです。

問題を理解するためにいくつかの例を見てみましょう。

入力

x = 7 , y = 3

出力

343

pow(x、y)の反復関数は、yの奇数値にxを掛けて結果を反復および更新し、反復ごとにxをx2に更新します。

ソリューションの実装を示すプログラム

#include <iostream>
using namespace std;
void calcPower(int x, unsigned int y) {
   int result = 1;
   while (y > 0) {
      if (y & 1)
      result *= x;
      y = y >> 1;
      x = x * x;
   }
   cout<<result;
}
int main() {
   int x = 7;
   unsigned int y = 3;
   cout<<x<<" raised to "<<y<<" is ";
   calcPower(x,y);
   return 0;
}

出力

raised to 3 is 343

  1. C ++のlog()関数

    C / C++ライブラリ関数doublelog(double x)は、xの自然対数(baseelogarithm)を返します。以下はlog()関数の宣言です。 double log(double x) パラメータは浮動小数点値です。そして、この関数はxの自然対数を返します。 例 #include <iostream> #include <cmath> using namespace std; int main () {    double x, ret;    x = 2.7;    /* finding l

  2. C ++を使用してパワー(pow)関数を記述します

    べき関数は、底と指数である2つの数値が与えられた場合のべき乗を見つけるために使用されます。その結果、基数が指数の累乗になります。 これを示す例は次のとおりです- Base = 2 Exponent = 5 2^5 = 32 Hence, 2 raised to the power 5 is 32. C++のべき関数を示すプログラムは次のとおりです- 例 #include using namespace std; int main(){    int x, y, ans = 1;    cout << "Enter the