看板 C_and_CPP 關於我們 聯絡資訊
題號: 392 - Polynomial Showdown 遇到的問題: WA 有問題的code: (請善用置底文的標色功能) #include <iostream> #include <sstream> #include <list> using namespace std; string showExponentSP(int temp, int item); //用來處理輸入裡面最先出現的項次 string showExponent(int temp, int item); //用來處理剩下的項次 //item 表示"項次" //temp 表示"輸入的值" int main() { string str = ""; list<int> l; int input; int counter = 0; int level = 8; cin>>input; while(cin) { l.push_back(input); counter++; if(counter == 9) { list<int>::iterator iter = l.begin(); while( iter != l.end() ) { if(str.empty()) { str.append(showExponentSP(*iter,level)); } else { str.append(showExponent(*iter,level)); } ++iter; level--; } cout<<str<<endl; str.clear(); l.clear(); counter = 0; level = 8; } cin>>input; } return 0; } string showExponentSP(int temp, int item) { string s=""; stringstream ss(s); if(item == 0) { ss<<temp; } else if(item == 1) { if (temp == 0) { ss<<""; } else { if(temp == -1) ss<<"-x"; else if(temp == 1) ss<<"x"; else ss<<temp<<"x"; } } else { if (temp == 0) { ss<<""; } else { if(temp == -1) ss<<"-x^"<<item; else if(temp == 1) ss<<"x^"<<item; else ss<<temp<<"x^"<<item; } } return ss.str(); } string showExponent(int temp, int item) { string s=""; stringstream ss(s); if(item>1) { if(temp == -1) ss<<" - "<<"x^"<<item; else if(temp == 1) ss<<" + "<<"x^"<<item; else if(temp<0) ss<<" - "<<(-temp)<<"x^"<<item; else if(temp>0) ss<<" + "<<temp<<"x^"<<item; else ss<<""; } else if(item == 0) { if(temp<0) ss<<" - "<<(-temp); else if(temp>0) ss<<" + "<<temp; else ss<<""; }else { if(temp == -1) ss<<" - "<<"x"; else if(temp == 1) ss<<" + "<<"x"; else if(temp<-1) ss<<" - "<<(-temp)<<"x"; else if(temp>1) ss<<" + "<<temp<<"x"; else ss<<""; } return ss.str(); } 補充說明: 我自己測了幾組可能會出問題的資料 不過沒什麼問題 應該有我沒有想到的問題在裡面 請大家幫我看看 謝謝 -- 我不是宅 我只是比較居家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 108.6.69.136 ※ 編輯: rock1985 來自: 108.6.65.112 (11/09 13:31)