Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int numOfRecursiveCalls;
- void calculatePolynomial(double*, double*, int, double, double);
- int main() {
- int n;
- double x0;
- double result = 0.0;
- printf("Enter n: ");
- scanf("%d", &n);
- if(n < 0) {
- printf("\nThe power must be greater or equal to 0.");
- return 1;
- }
- n++;
- printf("\nEnter x0: ");
- scanf("%lf", &x0);
- printf("\n");
- double* a = (double*) malloc(n * sizeof(double));
- for(int i = 0; i < n; i++) {
- printf("Enter a[%d] element: ", i);
- scanf("%lf", a + i);
- }
- calculatePolynomial(&result, a, n - 1, 1, x0);
- printf("\nResult: %.2lf\nNumber of recursive calls: %d\n", result, numOfRecursiveCalls);
- free(a);
- return 0;
- }
- void calculatePolynomial(double* result, double* a, int i, double multiplier, double x0) {
- if(i < 0) {
- return;
- }
- numOfRecursiveCalls++;
- *result = *result + a[i] * multiplier;
- return calculatePolynomial(result, a, --i, multiplier * x0, x0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement