霍納規則解決多項式的求值問題
阿新 • • 發佈:2018-03-07
樸素 std ++ amp 轉化 乘法 bsp res include
霍納規則用來簡化樸素多項式的求值。它將一元n次多項式的求值問題轉化為n個一次式。
霍納規則是采用最少的乘法運算策略,求多項式A(x) = anxn+ an-1xn-1+...+ a1x + a0在x0處的值,該規則是A(x0)=(...((anx0+ an-1)x0+...+ a1)x0+ a0)
1 #include<stdio.h> 2 3 int horner(int a[], int x, int n); 4 5 int main() 6 { 7 int n; 8 scanf("%d", &n); 9 10 int a[n + 1]; 11 int x; 12 for(int i = 0; i <= n; i++){ 13 scanf("%d", &a[i]); 14 } 15 16 scanf("%d", &x); 17 printf("%d", horner(a, x, n)); 18 19 return 0; 20 } 21 22 int horner(int a[], int x, int n) 23 { 24 int i = n; 25 int result = x; 26 while(i > 0){ 27 result = a[i] + result * x; 28 i--; 29 } 30 31 return result; 32 }
霍納規則解決多項式的求值問題