算法引論之多項式求解(遞歸和非遞歸實現)

/*
多項式求解:
輸入:係數,階數(決定項數),x值
輸出:多項式的值
遞歸本質:可以細分爲小問題(遞),然後小問題累積得出結果(歸)-設計程序時,爲找到出口點,並返回;  
實現1:非遞歸;
實現2:遞歸;
*/
#include <stdio.h>
#include <stdlib.h>
#include<iostream>
using namespace std;
 
int polynomialNorm1(int i,int a[],int x)
{
    int sum=a[0]*x+a[1];
    for(int j=2;j<i+1;j++)
    {
        sum=sum*x+a[j];
    }
    return sum;
}

int polynomialNorm2(int i,int n,int a[],int x)
{
    if(n>0)
    return a[n]+polynomialNorm2(i,n-1,a,x)*x;
    else
    return a[n];
}

int main()
{
    //非遞歸
    int i,a[10],x;
    cout<<"x的值"<<endl;
    cin>>x;
    cout<<"x的階數"<<endl;
    cin>>i;
    cout<<"多項式中的係數"<<endl;
    for(int j=0;j<=i;j++)
    cin>>a[j];
    int sum=polynomialNorm1(i,a,x);
    cout<<sum;
    system("pause");
    //遞歸
     sum=polynomialNorm2(i,i,a,x);
    cout<<sum;   
    
    return 0;
}
發佈了24 篇原創文章 · 獲贊 41 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章