題號:
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)