L2 018 多項式A除以B (25 分)

2021-09-12 03:19:06 字數 2368 閱讀 2802

l2-018 多項式a除以b (25 分)

這仍然是一道關於a/b的題,只不過a和b都換成了多項式。你需要計算兩個多項式相除的商q和餘r,其中r的階數必須小於b的階數。

輸入分兩行,每行給出乙個非零多項式,先給出a,再給出b。每行的格式如下:

n e[1] c[1] ... e[n] c[n]
其中n是該多項式非零項的個數,e[i]是第i個非零項的指數,c[i]是第i個非零項的係數。各項按照指數遞減的順序給出,保證所有指數是各不相同的非負整數,所有係數是非零整數,所有整數在整型範圍內。

分兩行先後輸出商和餘,輸出格式與輸入格式相同,輸出的係數保留小數點後1位。同行數字間以1個空格分隔,行首尾不得有多餘空格。注意:零多項式是乙個特殊多項式,對應輸出為0 0 0.0。但非零多項式不能輸出零係數(包括捨入後為0.0)的項。在樣例中,餘多項式其實有常數項-1/27,但因其捨入後為0.0,故不輸出。

下面這邊是學習後看的寫的吧?

#includeusing namespace std;

struct node

b[100005];//用來存除式

mapmp1;//用來存被除式 其實也算是最後的餘數

mapmp2;//用來存商

int main()

//存除式

scanf("%d",&m);

for(int i = 1; i <= m ; i ++)

scanf("%d %lf",&b[i].e,&b[i].c);

//開始多項式相除

for(int i = maxn; i >= b[1].e ; i --)//多項式相除就是分子的第乙個去除以分母的第乙個 然後再用得到的數去乘以除式就ok

//開始輸出

int ans1 = 0 ,ans2 = 0;

for(int i = 0 ; i <= maxn; i++)

//輸出商

printf("%d",ans2);

for(int i = maxn; i >= 0; i--)

if(ans2 == 0)

printf(" 0 0.0");

printf("\n");

//輸出餘數

printf("%d",ans1);

for(int i = maxn; i >= 0; i--)

if(ans1 == 0)

printf(" 0 0.0");

printf("\n");

return 0;

}

這個是自己重新寫的

#includeusing namespace std;

const int n = 10005;

struct node

node(int a, double b)

}s1[n],s2[n];

vectorvec;

int main()

int n;

scanf("%d",&n);

int maxn1 = 0, maxn2 = 0;

int x;double y;

for(int i = 1; i <= n ; i ++)

int m;

scanf("%d", &m);

for(int i = 1; i <= m; i ++)

//?ó3?×?′óμ?ê??àéù

//s2ê?2?±?μ? s3ê?éì s1 ê?óàêy

for(int i = maxn1 ; i >= maxn2; i--)

} vectorkk,tt;

for(int p = maxn1; p >= 0; p --)

}for(int p = 0; p < vec.size(); p ++)

} if(tt.size() != 0)

else

printf("0 0 0.0\n");

if(kk.size() != 0)

else

printf("0 0 0.0\n");

return 0;

}

L2 018 多項式A除以B 25 分

這仍然是一道關於a b的題,只不過a和b都換成了多項式。你需要計算兩個多項式相除的商q和餘r,其中r的階數必須小於b的階數。輸入分兩行,每行給出乙個非零多項式,先給出a,再給出b。每行的格式如下 n e 1 c 1 e n c n 其中n是該多項式非零項的個數,e i 是第i個非零項的指數,c i ...

L2 018 多項式A除以B (25 分)(細節)

l2 018 多項式a除以b 25 分 思路 測試點比較多,這種需要分步驟考慮,1 首先搞清楚什麼是多項式除法,就是b d c a,在a b中,d表示商,c表示餘數,所以從a的最高項開始比較,每次消掉a中的最高項,逐步降低多項式a的最高項數,每次降低都是利用a b x k c,每個 x k 和c都是...

7 10 多項式A除以B(25 分)

7 10 多項式a除以b 25 分 這仍然是一道關於a b的題,只不過a和b都換成了多項式。你需要計算兩個多項式相除的商q和餘r,其中r的階數必須小於b的階數。輸入分兩行,每行給出乙個非零多項式,先給出a,再給出b。每行的格式如下 n e 1 c 1 e n c n 其中n是該多項式非零項的個數,e...