多项式求值

#多项式求值解法:
###hello,本期我将会具体介绍多项式求值的解法,先看题目:
本题要求实现一个函数,计算阶数为n,系数为a[0] … a[n]的多项式
在这里插入图片描述
#大致解题思路-函数
1.将多项式的第一项arr【0】作为特殊的一项:使其成为sum的初始值
:double sum=arr【0】
2.遍历arr数组,使得每一个元素都乘以对应的x幂次方
3.返回相加求和的值
#开始具体解析

#include<stdio.h>
#define MAXN 10
int main()
{
	int n = 0;
	int i = 0;
	double x = 0.0;
	double arr[MAXN] = { 0 };
	scanf("%d %lf", &n, &x);
	for (i = 0; i <= n; i++)
	{
		scanf("%lf", &arr[i]);
	}
	printf("%.1lf\n", f(n, arr, x));
	return 0;
}

1.我定义了整型阶数n,整型变量i,double类型的给定点,double类型的数组arr,其大小为MAXN(这里是define定义的常量MAXN,即MAXN=10)
2.for循环,向数组arr里面的每一个元素(即多项式的系数)存储一个值
3.调用f函数,传入参数:阶数n,数组arr,给定点x
####函数写法:

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

1.函数的返回类型为double,名字是f,yong int n接收阶数n,double arr【】接收数组arr,double x接收给定点x
2.定义double sum的初始值为多项式的第一项arr【0】
因为只有第一项不需要乘以对应的x的幂次方
3.遍历数组arr,得到arr【0】后面的所有数组元素
然后乘以对应的x的幂次方后相加
m*=x:注意m一定要是double类型的 初始化为m=1,因为m是自乘给定点的值,由此可以实现模拟x的幂次方效果
4.最后返回sum的值
本期完!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值