<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
#include <iostream> using namespace std; int a[2][2]; //二維陣列開的秒 int b[2][2]; int ans[25]; //用來存放係數,那麼存放後所對應的下標就是指數 int main(){ for(int i=0;i<2;i++){ for(int j=0;j<2;j++){ cin >> a[i][j]; } } for(int i=0;i<2;i++){ for(int j=0;j<2;j++){ cin >> b[i][j]; } } for(int i=0;i<2;i++){ for(int j=0;j<2;j++){ ans[a[i][1] + b[j][1]] += a[i][0] * b[j][0]; //冪次就是對應的下標 } //累加的原因是,因為是兩個相加的式子相乘,所以要合併冪次相同的項 } for(int i = 20;i>=0;i--){ if(ans[i] != 0){ cout << ans[i] << " " << i << endl; } } return 0; }
採用動態陣列的方法
該方法較鏈式方法略微複雜
#include<iostream> using namespace std; //多項式的乘法和加法 struct node{ int coef; int exp; }; //****排序**** void nodesort(node* pn,const int& count) { if(count<=1) return; else{ bool flag =false; for(int i=0;i<count-1&&!flag;++i){ flag = true; for(int j=1;j<count-i;++j){ node t; if(pn[j-1].exp<pn[j].exp) { t = pn[j]; pn[j] = pn[j-1]; pn[j-1] = t; flag = false; } } } } } //****輸出**** void print( node *s,const int& n) { cout<<"*********output*********n"; for(int i=0;i<n;++i) { if(i!=n-1) cout<*<s[i].coef<<"x^"<<s[i].exp<<" + "; else cout<<s[i].coef<<"x^"<<s[i].exp<<endl; } cout<<endl; } //****合併同類項**** int nodemerge(node* s,const int& n ,const int& key=0){ if(n<1) {cerr<<"陣列大小有誤n";} if(n==1)return 1; if(n>1 && key==0){//排序並且合併 nodesort(s,n); int count=0; for(int i=1;i<n;++i) { if(s[count].exp==s[i].exp){ s[count].coef = s[count].coef + s[i].coef ; } else{ s[++count] = s[i]; } } return count+1; } if(n>1&&key==1){//僅合併 //nodesort(s,n); int count=0; for(int i=1;i<n;++i) { if(s[count].exp==s[i].exp){ s[count].coef = s[count].coef + s[i].coef ; } else{ s[++count] = s[i]; } } return count+1; } } //***計算多項式加法*** void add(node* s,const int& m,node* a,const int& n) { node* newnode = new node[m+n]; int i=0,j=0,temp=0; while(i<m && j<n){ if(s[i].exp>a[j].exp){ newnode[temp].coef = s[i].coef; newnode[temp].exp = s[i].exp; temp++; i++; } else if(s[i].exp<a[j].exp){ newnode[temp].coef = a[j].coef; newnode[temp].exp = a[j].exp; temp++; j++; } else { newnode[temp].coef = a[j].coef+s[i].coef; newnode[temp].exp = a[j].exp; temp++; i++; j++; } } while(i<m) { newnode[temp].coef = s[i].coef; newnode[temp].exp = s[i].exp; temp++; i++; } while(j<n) { newnode[temp].coef = a[j].coef; newnode[temp].exp = a[j].exp; temp++; j++; } temp = nodemerge(newnode,temp,1); cout<<"多項式加法n"; print(newnode,temp); delete[] newnode; return ; } //***計算多項式乘法*** void multi(node* s,const int& m,node* a,const int& n) { node* pn = new node[m*n]; int count = 0; for(int i=0;i<m;++i) { for(int j=0;j<n;++j){ pn[count].coef = (s[i].coef) * (a[j].coef) ; pn[count].exp = s[i].exp + a[j].exp; count++; } } //***排序並且合併*** count = nodemerge(pn,count,0); cout<<"多項式乘法n"; print(pn,count); delete[] pn; return ; } //****輸入資料***** node* node_input(const int& n) { node* seq = new node[n]; for(int i=0;i<2*n;++i) { if(i%2==0) cin>>seq[i/2].coef; else cin>>seq[i/2].exp; } return seq; } //***銷燬**** void delete_node(node*s){ delete[] s; } //**測試** int main(){ //m,n表示輸入的節點個數 //範例:3x^6+4x^4+x 輸入的個數為3,每個節點分別為:3 6; 4 4; *1 *1 int m,n; int temp; node* seq1,*seq2; cout<<"input m value:"; cin>>m; seq1 = node_input(m); cout<<"input n value:"; cin>>n; seq2 = node_input(n); //***排序並且合併*** m=nodemerge(seq1,m); n =nodemerge(seq2,n); //test print(seq1,m); print(seq2,n); multi(seq1,m,seq2,n); add(seq1,m,seq2,n); //delete delete_node(seq1); delete_node(seq2); return 0; }
樣例測試輸出
input m value:3
1 2
1 3
2 4
input n value:4
3 5
3 76
3 4
2 5
*********output*********
2x^4 + 1x^3 + 1x^2*********output*********
3x^76 + 5x^5 + 3x^4多項式乘法
*********output*********
6x^80 + 3x^79 + 3x^78 + 10x^9 + 11x^8 + 8x^7 + 3x^6多項式加法
*********output*********
3x^76 + 5x^5 + 5x^4 + 1x^3 + 1x^2
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45