PROBLEM STATEMENT :
How to compute A^n where n<1 million
Write code...
SOLUTION :
#include <iostream.h>
#include <cstdio>
using namespace std;
long double power(long double num, long int pow)
{
int flag = pow >=0 ? 0 : 1;
//long double one= 1.0F;
if(flag != 0)
{
pow*=-1;
num=1/(num);
}
if(pow == 0L)
{
return 1;
}
else if(pow == 1L)
{
return num;
}
else if(pow % 2 == 0)
{
return power(num,pow/2)*power(num,pow/2);
}
else
{
return power(num,pow/2)*power(num,pow/2)*num;
}
}
int main()
{
cout<<power(2,12345)<<endl;
cout<<power(2,51)<<endl;
cout<<power('\0','\0')<<endl;
cout<<power(2,0)<<endl;
cout<<power(2,-2);
}
No comments:
Post a Comment