當前位置:編程學習大全網 - 編程語言 - 多項式乘法編程專題c語言

多項式乘法編程專題c語言

簡單說壹個算法

輸入時輸入兩個公式的系數,可以用#作為輸入的結束符號。

夏爾?ch =“0”;

而(ch!='#'-'0')

{

scanf(%c,& ampch);

ch-=“0”;

}

實際值存儲在通過上述算法的每個周期獲得的ch中。

想辦法把它放到p,q數組裏

如果p,q,s位數分別是pi,qi,si。

si = pi+qi;?//s的冪必須是P和q的和。

p和q加到x的冪上,存儲在s的對應位置。

至於輸入系數。

如無特殊要求,輸入可按x升序排列。

這樣,p[0]中存儲了0次方,p[1]中存儲了1次方。...

三個數組都可以這樣排列。

方便計算的同時可以得到最終的項數,即(冪+1),用si表示。

s(x)系數的計算

x和m的二次方正好對應s[?]下標

for(m = 0;m & lt= sim++)?//計算數組s[?]

for(I = 0;我& lt= m;i++)

s[m]= p[I]+q[m-I];

那麽產量應該夠了。

大概就是這樣吧?

========================

源程序在這裏,Win7+C-Free?5.0測試通過

先截圖

#包含?& ltstdio.h & gt?

#包含?& ltstring.h & gt

#定義?馬克斯倫?20?//數組長度?

作廢?input();?//輸入P/Q?

作廢?mul();?//多項式乘法?

作廢?輸出();?//輸出s?

int?主要(無效)

{

浮動?p[MAXLEN],q[MAXLEN],?//p,q輸入元素是原多項式的系數。

s[MAXLEN & lt;& lt2];//S中的元素是輸出多項式。

int?sn,pn,qn;//分別是多項式的次數?

系統(“cls”);?

printf(" \ n \ n輸入P(x)(正整數)的次數):";?//輸入P(x)?

scanf("%d ",& amppn);

printf(" \ n輸入P(x)的系數,按降序排列P(x:\ n ");

pn++;//項數= times +1?

輸入(p,pn);

printf(" \ n ");?

printf(" \ n \ n輸入Q(x)(正整數)的次數):";?//輸入Q(x)?

scanf("%d ",& ampqn);

printf(" \ n輸入Q(x)的系數,並按降序排列Q(x):\ n ");

qn++;//項數= times +1?

input(q,qn);

printf(" \ n ");

sn =(pn+qn-2);//S多項式次數?

int?我;?//S數組初始化?

為了什麽?(I = 0;我& ltsn+1;i++)

s[I]= 0;

mul(p,q,s,pn,qn);//做多項式乘法?

輸出(s,sn+1);//輸出s?

printf(" \ n ");

getch();

回歸?1;

}

作廢?輸入(float?*p,int?t)

{

int?我;

為了什麽?(I = 0;我& ltt;i++)?scanf("%f ",& ampp[I]);

}

作廢?mul(float?*p,浮動?*q,浮動?*s,?int?m,?int?n)

{

int?I,j;

為了什麽?(I = 0;我& ltm;I++)//掃描P(x)系數?

為了什麽?(j = 0;j & ltn;J++)//掃描Q(x)系數?

s[I+j]+= p[I]* q[j];

}

作廢?輸出(浮點?*s,int?t)

{

int?我;

Printf("\nS(x)系數為(S(x)降序):\ n ");

為了什麽?(I = 0;我& ltt;i++)?

printf("%.2f\t ",s[I]);

}

嗚呼~ ~終於完成了~ ~

  • 上一篇:編程感嘆
  • 下一篇:軟件測試工程師待遇怎麽樣
  • copyright 2024編程學習大全網