กำลังของตัวเลขคือเวลาที่ตัวเลขนั้นคูณกับตัวมันเอง รู้จักเป็น เลขชี้กำลังหรือดัชนี
a ยกกำลัง b คือ b คูณ a คูณด้วยตัวมันเอง b คูณ 7 ยกกำลัง 2 ได้ 7 2 หรือเรียกอีกอย่างว่า 7 ตาราง มีค่า 49.
ค่ากำลังทั่วไปบางค่าคือ −
-
เลขยกกำลัง 0 ให้ 1.
-
เลขยกกำลัง 1 ให้จำนวนเท่ากัน ตามที่ระบุบางตัวคูณครั้งเดียวจะเท่ากัน
-
จำนวนยกกำลังลบคือ n คูณหาร ตัวอย่าง -3 =1/a 3 หรือ (1/a)*(1/a)*(1/a)
ตอนนี้ มาเขียนโปรแกรมตามแนวคิดเรื่องพลังกัน
ในปัญหานี้เราได้รับสองตัวเลข N และ a และเราต้องหาว่า N เท่ากับ a ยกกำลังจำนวนหนึ่งหรือไม่
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
ป้อนข้อมูล − N =64 , a =2
ผลลัพธ์ - ใช่
วิธีแก้ปัญหาที่ง่ายและมีประสิทธิภาพคือการหารจำนวนแบบเรียกซ้ำ ถ้ามันหารตัวเลขจนจบได้อย่างสมบูรณ์ คืนค่า TRUE มิฉะนั้น FALSE
ตัวอย่าง
โปรแกรมแสดงการใช้งานโซลูชันของเรา
#include <iostream>
using namespace std;
bool isAPowerNumber(int x, long int y) {
if (x == 1)
return (y == 1);
long int power = 1;
while (power < y)
power *= x;
return (power == y);
}
int main() {
int N = 625 , a = 5;
if(isAPowerNumber(a, N))
cout<<N<<" is a power of "<<a;
else
cout<<N<<" is not power of "<<a;
return 0;
} ผลลัพธ์
625 is a power of 5