递归计算多项式的值

来源:互联网 发布:淘宝卖家专用软件 编辑:程序博客网 时间:2024/05/16 17:59

递归计算多项式的值
一个多项式可以拆分成许多一次多项式的嵌套相乘。
y = 1 + x + x^2 = 1 + (1 + x) * x
学过数学基本都会,这里就是利用递归来计算每一个嵌套的一次多项式的
值,从外到里递归,从里到到外计算输出结果

#include <stdio.h>#include <stdlib.h>#define OVERFLOW -1#define N 10//数组容量double Polynomail(int a[], int i, double x, int n){//本算法计算多项式的值, a[]代表多项式的每一项的系数//i代表多项式的阶次, x代表每一项的幂, n代表多项式的项数    if (i > 0)    {        return a[n - i] + Polynomail(a, i - 1, x, n) * x;//拆分原理    }    else    {        return a[n];    }}int main(void){    double x;    int n;//多项式的阶次    int i;    int a[N];    printf("输入变量x的值:");    scanf("%lf", &x);    printf("输入多项式的阶次:");    scanf("%d", &n);    if (n > N - 1)    {        exit(OVERFLOW);    }    printf("输入多项式的系数a[0] -- a[n]:");    for (i = 0; i <= n; i++)    {        scanf("%d", &a[i]);    }    printf("P(n) = %lf\n", Polynomail(a, n, x, n));     system("pause");    return 0;}
1 0
原创粉丝点击