#include<iostream> 
using namespace std; 
class Number {
  protected:
    double value; 
  public:
 
    Number(double v) {
      value = v;
    }
   
    virtual void display() {
      cout<<"The value is: "<<value<<endl;
    }
};


class PowerNumber : public Number {
  private:
    int power; // The power value
  public:
   
    PowerNumber(double v, int p) : Number(v) {
      power = p;
    }
   
    double powerLoop() {
      double ans=1; 
      if(power==0) 
        return ans; 
      else 
      {   
        for(int i=1;i<=power;i++) 
        { 
          ans=ans*value; 
        } 
        return ans; 
      } 
    }
  
    double powerRecurse(int p) {
      if(p==0) 
      { 
        return 1; 
      } 
      if(p==1) 
      { 
        return value; 
      } 
      else 
      { 
        return (value*powerRecurse(p-1)); 
      } 
    }
   
    void display() {
      cout<<"The value is: "<<value<<" and the power is: "<<power<<endl;
    }
};

int main() 
{ 
  double n; 
  int p; 
  cout<<"Enter the base value (power is default set to 2) :"; 
  cin>>n; 
  
  PowerNumber num1(n,2);
  num1.display();
  cout<<"Power of number is : "<<num1.powerLoop()<<endl; 
  cout<<"\nEnter the base value and power :"; 
  cin>>n>>p; 
 
  PowerNumber num2(n,p);
  num2.display();
  cout<<"Power of number is : "<<num2.powerLoop()<<endl; 
  cout<<"\nEnter the base value and power :"; 
  cin>>n>>p; 
 
  PowerNumber num3(n,p);
  num3.display();
  cout<<"Using Recursion, Power of number is : "<<num3.powerRecurse(p)<<endl; 
  return 0; 
} 

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: