36
lab1/3.cpp
Normal file
36
lab1/3.cpp
Normal file
@@ -0,0 +1,36 @@
|
||||
#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;
|
||||
}
|
Reference in New Issue
Block a user