กำลังของตัวเลขคือเวลาที่ตัวเลขนั้นคูณกับตัวมันเอง รู้จักเป็น เลขชี้กำลังหรือดัชนี
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