#include #include #include #include using namespace std; const double H = 1.0; double fToIntegrate (double x) { return pow (x, 0.5) + 5.0; } double Integrate (double firstX, double lastX) { double midX = (firstX+lastX)/2.0; double rangeSize = fabs(lastX - firstX); if (rangeSize <= H) { return fToIntegrate (midX) * (rangeSize); } else { return Integrate (firstX, midX) + Integrate (midX, lastX); } } int Q3RecursiveFunc (int n) { if (n == 1) return 1; else if (n == 2) return 1; else if (n == 3) return 1; else if (n == 4) return 3; else if (n == 5) return 5; else { return Q3RecursiveFunc(n - 1) + Q3RecursiveFunc(n-5); } } int Q3IterativeFunc (int n) { if (n == 1) return 1; else if (n == 2) return 1; else if (n == 3) return 1; else if (n == 4) return 3; else if (n == 5) return 5; int lastFive[5] = {1, 1, 1, 3, 5}; int currVal = 0; for (int i = 5; i < n; i++) { currVal = lastFive[4] + lastFive[0]; lastFive[0] = lastFive[1]; lastFive[1] = lastFive[2]; lastFive[2] = lastFive[3]; lastFive[3] = lastFive[4]; lastFive[4] = currVal; } return lastFive[4]; } void ClockRecursiveFunction () { clock_t ltimeBefore, ltimeAfter; float timeDiff = 0.0; for (int i = 50; i < 70; i++) { ltimeBefore= clock( ); cout << "F("<