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

C++ mewakili bilangan kuasa nombor

WBOY
Lepaskan: 2023-08-27 09:05:13
ke hadapan
738 orang telah melayarinya

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.
Salin selepas log masuk

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),
Salin selepas log masuk

Mengambil x sebagai faktor sepunya,

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

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),
Salin selepas log masuk

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;
}
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan