6-2 多项式求值 (15分)

本文介绍了一个计算多项式在特定点的值的函数实现方法,包括递归和直接求解两种方式,适用于数学计算和工程应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本题要求实现一个函数,计算阶数为n,系数为a[0] … a[n]的多项式f(x)=∑
​i=0
​n
​​ (a[i]×x
​i
​​ ) 在x点的值。

函数接口定义:
double f( int n, double a[], double x );

其中n是多项式的阶数,a[]中存储系数,x是给定点。函数须返回多项式f(x)的值。

裁判测试程序样例:
#include <stdio.h>

#define MAXN 10

double f( int n, double a[], double x );

int main()
{
int n, i;
double a[MAXN], x;

scanf("%d %lf", &n, &x);
for ( i=0; i<=n; i++ )
    scanf(“%lf”, &a[i]);
printf("%.1f\n", f(n, a, x));
return 0;

}

/* 你的代码将被嵌在这里 */

输入样例:
2 1.1
1 2.5 -38.7

输出样例:
-43.1

两种方法

  1. 一种是递归 另一种
  2. 是直接求
    一 递归
double f( int n, double a[], double x )
{

	double sum = 0;
	
	for(  ;n >= 0; n--)
		{
			sum = sum*x + a[n];
		}
	return sum;
}

二 直接求

double f( int n, double a[], double x) {
    double sum = a[0];
    int i = 0;
    double b = 1.0;
    for(i=1; i<=n; i++) {
        b *= x;
        sum += (a[i] * b);
    }
    
    return sum;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值