最近在學數值分析,需要進行演算法編碼,小小的記錄一下自己的實驗!
關於秦九韶演算法求解多項式,開始之前看了很多同學的分享,基本採用的都是陣列儲存係數再進行迴圈。
但是直接用c語言陣列靜態儲存感覺不太方便,必須提前約定陣列規模,無法隨著輸入數的改變而變動。
所以這裡就換成了動態記憶體分配的方法qwq, 採用malloc函式進行空間調配。
#include
#include
intmain()
int v = ptr[length -1]
;//v=an初始值,秦九韶,v=v*x+an-k
int x =0;
printf
("請輸入待求式x的值:\n");
scanf_s
("%d"
,&x)
;for
(i = length -
1; i >
0; i--
)printf
("最終結果為:%d\n"
, v)
;free
(ptr);}
return0;
}
1.降序輸入或是公升序輸入均可,記得改變迴圈部分就行;
2.數值用的int型,可以自己進行設定;
3.外層迴圈條件直接用的while(1)有些些些許的暴力,用eof或者採用exit會好一點,但是條件判斷用啥暫時沒想好。。。就沒寫了
4.其他類似讀取檔案流啊等等各種資料操作方法嘗試都可
5.因為用的vs2015,安全檢測比較嚴格所以寫的是scanf_s
emmm感覺也沒啥補充的了,那就這樣吧qwq!
秦九韶演算法實現
設定多項式的係數,為1.0 10.0之間的隨機數 param num return public arraylistgetrandomcoefficient integer num return arraylist 秦九韶演算法計算結果 param arraylist param x return ...
noip 解方程 秦九韶演算法
已知多項式方程 a0 a1x 1 a2 x2 an 1xn 1 an xn 0 求這個方程在 1,m 內的整數解 n 和 m 均為正整數 輸入共 n 2 行。第一行包含 2 個整數 n m,每兩個整數之間用乙個空格隔開。接下來的 n 1 行每行包含乙個整數,依次為a0 a1,a2,a n 第一行輸出...
2 10 霍納法則 秦九韶演算法 求多項式
p n a0 x0 a1 x1 a2 x2 an xn 定義tmp an 1 0 上推一步 an 1 x an tmp tmp x k n k n 第一步 先求an x an 1 tmp k n x k n 1 第二步 第一步的結果再乘以x an 2。就是 an x an 1 x an 2 k n ...