labs 1-6: init

Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
This commit is contained in:
2022-12-24 14:03:08 +05:30
commit ad185c994e
26 changed files with 2250 additions and 0 deletions

36
lab1/3.cpp Normal file
View 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;
}