Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ คำนวณกำลังของตัวเลข


กำลังของตัวเลขสามารถคำนวณได้เป็น 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);