08/10/26 17:10:49
>>742
#include <stdlib.h>
#include <stdio.h>
#include <memory.h>
double horner(double x, double *a, int n);
main()
{
int i, n;
double x, *a;
printf("Horner の方法で多項式を計算します!\n");
printf("次数n を入力して下さい:");
scanf("%d", &n);
a = (double*)malloc(sizeof(double) * (n + 1));
printf("実数係数を順に入力して下さい:\n");
for(i = n; i >= 0; i--){
printf("a[%d] = ", i);
scanf("%lf", &a[i]);
}
printf("x の値を入力して下さい:");
scanf("%lf", &x);
printf("多項式の値 = %lg\n", horner(x, a, n));
free(a);
return 0;
}
double horner(double x, double *a, int n)
{
if (n == 0) return a[0];
return x * horner(x, a + 1, n - 1) + a[0];
}