Rumah >pembangunan bahagian belakang >C++ >C++ mewakili bilangan kuasa nombor

C++ mewakili bilangan kuasa nombor

WBOY
WBOYke hadapan
2023-08-27 09:05:13740semak imbas

C++ mewakili bilangan kuasa nombor

Bincangkan masalah menyatakan satu nombor dengan menaikkannya kepada kuasa nombor lain. Diberi dua nombor, x dan y. Kita perlu menilai sama ada y boleh dinyatakan dalam sebutan kuasa x, di mana setiap kuasa persamaan −

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.

di mana c0, c1, c2 boleh menjadi -1, 0, +1, menunjukkan sama ada untuk menolak (-1 ) istilah, tambah sebutan (+1) atau kecualikan (0) sebutan−

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

Mengambil x sebagai faktor sepunya,

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

Daripada persamaan (1) dan (2) kita boleh mewakili nombor itu sekali lagi, mengikut tertib untuk penyelesaian wujud, (y - Ci) hendaklah boleh dibahagikan dengan x, dan Ci hanya boleh mengandungi -1, 0 dan +1.

Jadi akhirnya kita perlu menyemak sehingga y>0, sama ada ia memenuhi [(y-1) % x == 0] atau [(y) % x == 0] atau [(y+1) % x == 0] , atau sama ada tiada penyelesaian.

Contoh

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

Kesimpulan

Dalam tutorial ini, kami membincangkan cara menyemak sama ada perwakilan nombor boleh dinyatakan sebagai kuasa nombor lain. Kami membincangkan cara mudah untuk menyelesaikan masalah ini dengan menyemak sama ada nombor semasa, nombor sebelumnya dan nombor seterusnya boleh dibahagi dengan y.

Kami juga membincangkan program C++ untuk menyelesaikan masalah ini. Kami boleh menggunakan bahasa pengaturcaraan seperti C, Java, Python, dll. untuk melaksanakannya. Semoga tutorial ini dapat membantu anda.

Atas ialah kandungan terperinci C++ mewakili bilangan kuasa nombor. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam

Artikel berkaitan

Lihat lagi