Rumah >pembangunan bahagian belakang >C++ >Hitung kuasa %m kuasa k
Matlamat kami adalah untuk mengira k kali % m dinaikkan kepada kuasa, mengambil sebagai input asas, nilai k dan m -
Tengok gambar di atas. Adakah anda cuba mengira masalah sedemikian? Jom cuba.
Kira kuasa yang dinaikkan kepada kuasa kth, dan kemudian ambil modulo m.
Terjemahan bahasa Cina bagiDalam masalah ini, x, k dan m diberi. Kira ${x^{x{^x{^{^.{^{^.{^{^.}}}}}}}}}}}$, ulang k kali, dan kemudian ambil modulo m.
Mari kita fahami melalui contoh.
Diketahui bahawa x = 2, k = 4, m = 6
Oleh itu, kira $2^{2^{2{^2}}}:=:4^{2{^2}}:=:16^2:=:256$ p>
Kemudian 256% 6 = 4.
Jadi, keputusan akhir ialah 4.
Mari bincangkan algoritma langkah demi langkah untuk mengira k kali kuasa % m.
Ambil nilai x, k dan m sebagai input.
Gunakan fungsi pow untuk mengira kuasa kuasa, dan akhirnya gunakan operator modulo untuk mendapatkan hasil akhir.
Cetak hasil akhir sebagai output.
Program C++ untuk mengira kuasa ke-k %m.
#include <iostream> #include <cmath> using namespace std; int powofpow(int x, int k){ int val = x; k--; while (k--) val = pow(val, x); return val; } int main(){ int x = 5, k = 2, m = 3; int result; result = powofpow(x, k); result %= m; cout << "Compute power of power " << k << " times % " << m << " of " << x << " is " << result << endl; return 0; }
Compute power of power 2 times % 3 of 5 is 2
Kerumitan masa: O(k), kerana kod ini melakukan lelaran (k-1) kali.
Kerumitan Ruang: O(1) kerana kod menggunakan bilangan pembolehubah tetap untuk menyimpan nilai input dan hasil tanpa mengira saiz input.
Dalam artikel ini, kami cuba menerangkan kaedah pengkomputeran asas dinaikkan kepada kuasa k kali modulo m, di mana nilai asas, k dan m diberikan sebagai input. Saya harap artikel ini membantu anda memahami konsep ini dengan lebih baik.
Atas ialah kandungan terperinci Hitung kuasa %m kuasa k. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!