ZZULIOJ 1794 多項式相加

2021-07-08 09:06:34 字數 1395 閱讀 1610

乙個多項式可以表達為x的各次冪與係數乘積的和,比如:2x

6+3x

5+12x

3+6x+20,現在你的程式要讀入兩個多項式,然後輸出這兩個多項式的和,也就是把對應的冪上的係數相加然後輸出。冪最大為100。

首先輸入乙個整數t,表示有t組資料。

每組測試要輸入兩個多項式,每個多項式對應多行輸入,格式如下:

每行輸入兩個數字 k 和 a,對應多項式的某一項。 k 表示該項的冪次( k 為不大於100的非負整數), a 表示該項的係數(整數)。輸入第一行一定是冪次最高項,輸入的最後一行一定是冪次最低項,但第一行和最後一行之間不一定按冪次降序排列。若冪次和係數同時為-1表示輸入結束(此輸入不對應有效項)。

如果多項式某項的係數為0,則輸入不含該項。

輸出多項式,各項按冪次從高到低排列,如:2x6+3x5+12x3-6x+20

注意:其中的x是小寫字母x;所有符號之間沒有空格;輸出時省略係數為0的項。

1

6 25 3

3 12

1 60 20

-1 -1

6 25 3

2 12

1 60 20

-1 -1

4x6+6x5+12x3+12x2+12x+40

%+d 可輸出符號,正號或負號

如果有語言可以表達我目前的心情的話,那大概是:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈!xn

這破題,我能說我用最蠢的方法做完之後才發現有hint嗎(吐)

總之……激動完了繼續刷題,唉。_(:з」∠)_

#include#includeint a[100][4],b[100][4],c[1000][4],d[1000][4];

int main()

if(a[i1][1]==-1&&a[i1][2]==-1)

break;

}for(i2=1;i2!=0;i2++)

if(b[i2][1]==-1&&b[i2][2]==-1)

break;

}if(a[1][1]>b[1][1])

x=a[1][1];

else

x=b[1][1];

if(a[i1-1][1]>b[i2-1][1])

y=b[i2-1][1];

else

y=a[i1-1][1];

memset(c,0,sizeof(c));

int w=x-y;

for(o=1;x>=y;o++)

for(k=1;k<=w+1;k++)

if(d[i][1]==0)

printf("%d\n",d[i][2]);

else

}} }

return 0;

}

MATLAB多項式及多項式擬合

多項式均表示為陣列形式,陣列元素為多項式降冪係數 1.polyval函式 求多項式在某一點或某幾個點的值.p 1,1,1 x 2 x 1 x 1,0,1 y polyval p,x 另外求函式在某一點或某幾個點的值可以用函式feval.x 1,0,1 y feval x exp x x 注意用的乘法...

數學 多項式 多項式求逆

多項式求逆 前置知識 ntt 給定乙個多項式 f left x right 求乙個多項式 g left x right 使得 f left x right g left x right equiv 1 left bmod 998244353 right 考慮遞迴求解。假定現在已經求出了 g 0 le...

matlab多項式與非多項式擬合

擬合標準 1 原始資料向量與擬合向量之間的距離最小,該距離的度量一般使用誤差平方和表示,即均方誤差 r q y 22 2 當均方誤差最小時,說明構造的擬合向量與原始向量最為接近,這種曲線擬合的方法稱為最小二乘法 3 計算均方誤差最小時的擬合係數,可以通過微積分中求解極值的方法實現 多項式擬合 1 多...