ホームページ  >  記事  >  バックエンド開発  >  C++ は数値の累乗を表します

C++ は数値の累乗を表します

WBOY
WBOY転載
2023-08-27 09:05:13722ブラウズ

C++ は数値の累乗を表します

ある数値を別の数値のべき乗を使って表現する問題について話し合います。 2 つの数値 x と y が与えられます。 y を x の累乗で表現できるかどうかを判断する必要があります。ここで、各べき乗の表現の例として、方程式 −

Input: x = 4, y = 11
Output: true
Explanation: 4^2 - 4^1 - 4^0 = 11 Hence y can be represented in the power of x.

Input: x = 2, y = 19
Output: true
Explanation: 2^4 + 2^1 + 2^0 =19 Hence y can be represented in the power of x.

Input: x = 3, y = 14
Output: false
Explanation: 14 can be represented as 3^2 + 3^1 + 3^0 + 3^0 but we cannot use one term of power of x twice.

を形成できます。ここで、c0、c1、c2 は -1 になります。 、0、1、(-1)項を減算するか、(1)項を加算するか、(0)項を除く −

c0(x^0) + c1(x^1) + c2(x^2) + c3(x^3) + … = y ….(1),

xを共通因数とする、

c1(x^1) + c2(x^2) + c3(x^3) + … = y - c0,

方程式 (1) と (2) から、数値を再度表すことができます。解を得るには、(y - Ci) が x で割り切れる必要がありますが、Ci には -1、0、1 のみを含めることができます。

したがって、最後に、y>0 が [(y-1) % x == 0] または [(y) % x == 0] または [(y 1) % を満たすかどうかを確認する必要があります。 x = = 0]、または解が存在しない場合。

c1(x^0) + c2(x^1) + c3(x^2) + … = (y - c0)/x ….(2),

出力

#include <bits/stdc++.h>
using namespace std;
int main(){
   int x = 2, y = 19;
   // checking y divisibility till y>0
   while (y>0) {
      // If y-1 is divisible by x.
      if ((y - 1) % x == 0)
         y = (y - 1) / x;
        // If y is divisible by x.
      else if (y % x == 0)
         y = y / x;
         // If y+1 is divisible by x.
      else if ((y + 1) % x == 0)
         y = (y + 1) / x;
         // If no condition satisfies means
         // y cannot be represented in terms of power of x.
      else
         break;
   }
   if(y==0)
      cout<<"y can be represented in terms of the power of x.";
   else
      cout<<"y cannot be represented in terms of the power of x.";
   return 0;
}

結論

このチュートリアルでは、数値の表現が次の観点から表現できるかどうかを確認する方法について説明しました。累乗で表される別の数。現在の数値、前の数値、次の数値が y で割り切れるかどうかを確認することで、この問題を解決する簡単な方法について説明しました。

この問題を解決するための C プログラムについても説明しました。C、Java、Python などのプログラミング言語を使用して実装できます。このチュートリアルがお役に立てば幸いです。

以上がC++ は数値の累乗を表しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。