กำลังของตัวเลขสามารถคำนวณได้เป็น x^y โดยที่ x คือตัวเลข และ y คือกำลังของตัวเลขนั้น
ตัวอย่างเช่น
Let’s say, x = 2 and y = 10 x^y =1024 Here, x^y is 2^10
สามารถคำนวณกำลังของตัวเลขได้โดยใช้โปรแกรมแบบเรียกซ้ำและแบบไม่เรียกซ้ำ ได้ดังนี้
พลังของตัวเลขโดยใช้โปรแกรมแบบไม่เรียกซ้ำ
โปรแกรมหากำลังของตัวเลขโดยใช้โปรแกรมแบบไม่เรียกซ้ำมีดังต่อไปนี้ −
ตัวอย่าง
#include<iostream> using namespace std; int power(int x, int y) { int i,power=1; if(y == 0) return 1; for(i=1;i<=y;i++) power=power*x; return power; } int main() { int x = 3; int y = 4; cout<<"x = "<<x<<endl;; cout<<"y = "<<y<<endl; cout<<"x^y = "<<power(x,y); return 0; }
x = 3 y = 4 x^y = 81
ในโปรแกรมข้างต้น ฟังก์ชัน power() ถูกใช้เพื่อคำนวณกำลังของตัวเลข เป็นฟังก์ชันที่ไม่เรียกซ้ำ ในฟังก์ชัน ใช้ for loop ซึ่งทำงานตั้งแต่ 1 ถึง y สำหรับการวนซ้ำแต่ละครั้ง x จะถูกคูณด้วยกำลัง
ดังนั้น x คูณด้วยตัวมันเองด้วย y และผลลัพธ์จะถูกเก็บเป็นกำลัง สิ่งนี้นำไปสู่ x^y ถูกเก็บไว้ในพลังงาน จากนั้นพลังงานจะกลับสู่ฟังก์ชัน main()
ข้อมูลโค้ดต่อไปนี้แสดงให้เห็นถึงสิ่งนี้ −
int power(int x, int y) { int i, power = 1; if(y==0) return 1; for(i=1;i<=y;i++) power = power*x; return power; }
ใน main() ค่าของ x, y และ x^y จะแสดงขึ้น ซึ่งแสดงในข้อมูลโค้ดด้านล่าง −
cout<<"x = "<<x<<endl;; cout<<"y = "<<y<<endl; cout<<"x^y = "<<power(x,y);
พลังของตัวเลขโดยใช้โปรแกรมแบบเรียกซ้ำ
โปรแกรมหากำลังของตัวเลขโดยใช้โปรแกรมแบบเรียกซ้ำมีดังต่อไปนี้
ตัวอย่าง
#include<iostream> using namespace std; int power(int x, int y) { if (y == 0) return 1; else if (y%2 == 0) return power(x, y/2)*power(x, y/2); else return x*power(x, y/2)*power(x, y/2); } int main() { int x = 3; int y = 4; cout<<"x = "<<x<<endl;; cout<<"y = "<<y<<endl; cout<<"x^y = "<<power(x,y); return 0; }
ผลลัพธ์
x = 3 y = 4 x^y = 81
ในโปรแกรมข้างต้น power() เป็นฟังก์ชันแบบเรียกซ้ำ ถ้าค่าของ y เป็น 0 มันจะคืนค่า 1 ถ้า y เป็นเลขคู่ มันจะเรียกตัวเองซ้ำด้วยค่า x และ y/2 และคืนค่า power(x, y/2)*power(x, y/2) ถ้า y เป็นเลขคี่ มันจะเรียกตัวเองซ้ำด้วยค่า x และ y/2 และคืนค่า x*power(x, y/2)*power(x, y/2) สิ่งนี้แสดงให้เห็นโดยข้อมูลโค้ดต่อไปนี้
int power(int x, int y) { if (y == 0) return 1; else if (y%2 == 0) return power(x, y/2)*power(x, y/2); else return x*power(x, y/2)*power(x, y/2); }
ใน main() ค่าของ x, y และ x^y จะแสดงขึ้น ซึ่งแสดงในข้อมูลโค้ดด้านล่าง
cout<<"x = "<<x<<endl;; cout<<"y = "<<y<<endl; cout<<"x^y = "<<power(x,y);