Вписване в сайта



рекурсия

Вторник, 27 Юли 2010 12:52

рекурсия вдигане на степен

Написана от 
Оценете
(0 гласа)

Условие

Да се състави програма на C++, чрез която се осъществява бързо вдигане на степен.
Входни данни: основа - реално число [10.1..99.9] и степенен показател естествено число от интервала [3..10].
Използвайте рекурсия

Решение

 
#include <iostream>
#include <stdio.h>
using namespace std;
double base = 2.73;
unsigned st_pokaz = 9;//globalni promenliwi
float stepen(double x, unsigned n) //kraj na ekursiwnata funkciq
{ if (n == 0) return 1;//wsqko chislo <>0 powdignato na stepen 0 e =1
  else
   if (n % 2) return x*stepen(x, n-1);//ako stepenniq pokazatel e nechetno chislo
    else return stepen(x*x, n/2);//ako stepenniq pokazatel e chetno chislo
}//kraj na ekursiwnata funkciq
int main ()
{cout<<"Da se systawi rekursiwna funkciq, crez koqto se osyshestwqwa \n";
cout<<"byrzo wdigane na stepen. Whodni danni: osnowa-realno chislo i \n";
cout<<"stepenen pokazatel estestweno chislo ot interwala [3..10].\n";
cout<<"Wywedete realno chislo za osnowa: ";cin>>base;
cout<<"Wywedete estestweno chislo za stepenen pokazatel: ";cin>>st_pokaz;
printf("%lf^%u = %lf\n", base, st_pokaz, stepen(base,st_pokaz));
system("pause");
return 0;
}//kraj na programa rekursiq

Прочетена 1981 пъти Последно променена в Четвъртък, 29 Юли 2010 02:02