> 백엔드 개발 > C++ > C++는 숫자의 거듭제곱을 나타냅니다.

C++는 숫자의 거듭제곱을 나타냅니다.

WBOY
풀어 주다: 2023-08-27 09:05:13
앞으로
740명이 탐색했습니다.

C++는 숫자의 거듭제곱을 나타냅니다.

한 숫자를 다른 숫자의 거듭제곱으로 표현하는 문제에 대해 토론하세요. x와 y라는 두 숫자가 주어졌습니다. y가 x의 거듭제곱으로 표현될 수 있는지 판단해야 합니다. 여기서 An 방정식의 각 거듭제곱은 −

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] 또는 해결책이 없는지 여부입니다.

Example

c1(x^0) + c2(x^1) + c3(x^2) + … = (y - c0)/x ….(2),
로그인 후 복사

Output

#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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿