用c編寫求兩個一元多項式相乘的演算法

2021-05-05 18:28:37 字數 1800 閱讀 3101

1樓:全方面人才

給你編完了;在vc6下可以執行

#include

#include

using namespace std;

void cheng(int a,int b,int w)for(int q=w;q>=0;q--) }cout<=0;l--)

cheng(x,y,i);}

2樓:匿名使用者

給個**你

2.3 應用:一元多項式(加法和乘法)

2.3.1 基礎知識

我們使用一元多項式來說明單鏈表的應用。假設有兩個一元多項式:

p1(x) = x^2 + 2x + 3

以及p2(x) = 3x^3 + 10x + 6

現在運用中學的基礎知識,計算它們的和:

p1(x) + p2(x) = (x^2 + 2x + 3) + (3x^3 + 10x + 6)

= 3x^3 + 1x^2 + 12x^1 + 9

以及計算它們的乘積:

p1(x) * p2(x) = (x^2 + 2x + 3) * (3x^3 + 10x + 6)

= 3x^5 + 6x^4 + 19x^3 + 26x^2 + 42x^1 + 18

怎麼樣,很容易吧?:) 但我們是靈長類動物,這麼繁瑣的計算怎麼能用手工來完成呢?(試想一下,如果多項式非常大的話……)我們的目標是用計算機來完成這些計算任務,**就在下面。

2.3.2 **實現

//// filename : poly.cpp

// version : 0.10

// author : luo cong

// date : 2004-12-30 17:32:54

// comment :

#include

#include "slist.h"

#define max(x,y) (((x)>(y)) ? (x) : (y))

typedef struct tagpolynomial

* polynomial;

static void addpolynomial(

polynomial polysum,

const polynomial poly1,

const polynomial poly2)}

static void mulpolynomial(

polynomial polymul,

const polynomial poly1,

const polynomial poly2)}

}static void printpoly(const polynomial poly)

int main()

if (poly2)

if (polyresult)

}2.3.3 說明

原書中只給出了一元多項式的陣列實現,而沒有給出單鏈表的**。實際上用單鏈表最大的好處在於多項式的項數可以為任意大。(當然只是理論上的。

什麼?你的記憶體是無限大的?好吧,當我沒說……)

我沒有實現減法操作,實際上減法可以轉換成加法來完成,例如 a - b 可以換算成 a + (-b),那麼我們的目標就轉變為做乙個負號的運算了。至於除法,可以通過先換算「-」,然後再用原位加法來計算。(現在你明白加法有多重要了吧?

^_^)有興趣的話,不妨您試試完成它,我的目標只是掌握單鏈表的使用,因此不再繼續深究。

C語言寫多項式相加怎麼寫,兩個多項式相加運算(用c語言)

2007 3 22 一元多項式的加法 include include include typedef struct polynodenode node createpoly void h next null tail h printf 請輸入每一項額係數和指數 中間以逗號隔開 n printf co...

c語言向量的運算,用C語言編寫乙個計算兩個向量叉積的程式

根據題意可得如下代專碼 屬 include int main for i 0 i n i for i 0 i n i printf d n ans return 0 c語言如何實現兩向量叉乘 根據叉乘的計算方法可知 因此可直接通過計算三階行列式的方法來計算兩向量的叉乘 include void cp...

七年級1班小明同學做一道題已知兩個多項式AB,A

a x2 2x 1,內2a b 2 x2 2x 1 b x2 5x 4,b x2 5x 4 2 x2 2x 1 容 x2 5x 4 2x2 4x 2,x2 x 2,a 2b x2 2x 1 2 x2 x 2 x2 4x 5.七年級 1 班冬冬同學做一道題 已知兩個多項式a,b。a x的平方 2x 1...