多項式計算-C語言遞迴實現
開始輸入多項式X的值和冪數,跟著輸入每項的係數,演算法通過遞迴實現X的n次方,最後返回多項式的值。這種演算法的好處是,所需的計算步驟只有傳統各項乘法的一半,利用了X^n=X^(n/2)*X^(n/2)的捷徑,所以不用每次都去乘以本身。
#include <stdio.h>
#include <stdlib.h>
long summation(int x,int n);
int main()
{
int x,n,c=0;
long sum=0;
printf("Enter x and n:");
scanf("%d %d",&x,&n);
while(n>=0)
{
if(n>0)
{
printf("Enter the power %d 's co-efficiency:",n);
}
else
{
printf("Enter the constant term:");
}
scanf("%d",&c);
sum+=c*summation(x,n);
n--;
}
printf("%ld",sum);
return 0;
}
long summation(int x,int n)
{
long power;
if(n==0)
{
return 1;
}
else
{
if(n%2==0)
{
power=summation(x,n/2)*summation(x,n/2);
}
else
{
power=x*summation(x,(n-1)/2)*summation(x,(n-1)/2);
}
}
return power;
}