C++ Bir Sayının İstenilen Kuvvetinin Bulunması

Merhaba arkadaşlar, bu yazımızda girilen 2 sayı (biri taban biri kuvvet olmak üzere) hesaplanması için gereken program kodlarını paylaşacağım. Örneğin, 2 ve 3 sayıları girildiğinde sonuç 2 üzeri 3 olacak yani 8 olacaktır. İlk olarak temel mantığı anlamamız için örnek kod;

#include<iostream>

using namespace std;

int main()
{
  int b, p, i, pow = 1;
  cout << "Taban ve kuvvetini giriniz: ";
  cin >> b >> p;
  for(i=p;i>0;i--)
  {
      pow=pow*b;
  }
  cout << "Sonuc : " << pow;
  return 0;
}

Tabii ki işler bu kadar basit değil. Kullanıcıdan alınan her sonuç, beraberinde bir takım sorunlar getirebilir. Örneğin, kullanıcı kuvvet değeri için 0 girebilir. Aslında toplamda 5 ihtimal var. Bunlar;

  • Kuvvetin pozitif olması (+)
  • Kuvvetin negatif olması (-)
  • Tabanın pozitif olması (+)
  • Tabanın negatif olması (-)
  • Kuvvetin 0 (sıfır) olması

Tüm bu ihtimalleri bir programda toplamak istersek, şu kodu kullanabiliriz;

#include<iostream>

using namespace std;

int main()
{
  float b, p, i, pow = 1;
  cout << "Tabani ve kuvveti giriniz : ";
  cin >> b >> p;
  if(p>0)
  {
      for(i=p;i>0;i--)
      {
          pow=pow*b;
      }
  }
  else if(p<0)
  {
      p=p * -1;

      for(i=p;i>0;i--)
      {
          pow=pow*b;
      }

      pow=1/pow;
  }
  else if(p==0)
  {
      pow=1;
  }
  cout<<"Sonuc: "<<pow;
  return 0;
}