#ifndef FUNDAMENTAL_RECURSION_UTILS_H #define FUNDAMENTAL_RECURSION_UTILS_H #include #include void printNaturalNumber(int n); int calculateFactorial(int n); int power(int base, int exp); int fibonacci(int n); int countOccurrences(const std::string& s, char c); int findLargestElement(const int arr[], int size); void traverseAsciiTable(char start, char end); // Helpers partially generated by ChatGPT void fillRandomArray(int arr[], int size, int minVal, int maxVal); std::string makeRandomString(int len, char minChar, char maxChar); int countOccurrences_index(const std::string& s, char c, int index); template double time_ms(F&& f, Args&&... args) { auto t0 = std::chrono::high_resolution_clock::now(); (void)std::forward(f)(std::forward(args)...); auto t1 = std::chrono::high_resolution_clock::now(); return std::chrono::duration(t1 - t0).count(); } #endif //FUNDAMENTAL_RECURSION_UTILS_H