Files
ooplab/lab1/3.cpp
Amneesh Singh ad185c994e labs 1-6: init
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2022-12-24 14:03:08 +05:30

37 lines
572 B
C++

#include <cmath>
#include <iostream>
double uexponent(double m, unsigned int n) {
double ret;
if (!n)
return 1;
if (n == 1)
return m;
ret = uexponent(m, n / 2);
ret *= ret;
if (n % 2)
return ret * m;
else
return ret;
}
double exponent(double m, int n = 2) {
if (n >= 0)
return uexponent(m, n);
return 1 / uexponent(m, std::abs(n));
}
int main() {
double m = 4.1;
int n = 4;
std::cout << m << " raised to " << n << ": " << exponent(m, n) << std::endl
<< "When n is omitted: " << exponent(m) << std::endl;
}