1. 程式人生 > 其它 >用遞迴實現多項式求解

用遞迴實現多項式求解

技術標籤:C語言c語言演算法

(如有不對請評論指出)
以下求解採用秦九韶演算法
在這裡插入圖片描述

正常遞迴

#include<stdio.h>
int b=0;
double f(int x,float z)
{
	int a;//a是係數
	float sum;
	printf("請輸入第%d的係數:",b++);
	scanf("%d",&a);
	if(x==0)
		return a;
	else
		return sum=a+f(x-1,z)*z;	

}
void main()
{
	int m,n;//m為最高次
	float x;
	printf
("請輸入最高次和x的值:"); scanf("%d %f",&m,&x); printf("%lf",f(m,x)); }

尾遞迴

#include<stdio.h>
double f(int x,int y,float z)
{
	int a;//a是係數
	float sum;
	if(x-1>=0)
	{
	printf("請輸入第%d的係數:",x-1);
	scanf("%d",&a);
    }
	if(x==0)
		return y;
	else
return f(x-1,y*z+a,z); } void main() { int m,n;//m為最高次 float x; printf("請輸入最高次和其係數和x的值:"); scanf("%d %d %f",&m,&n,&x); printf("%lf",f(m,n,x)); }