#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<<"";
}
//cout<<item<<" ";
return ss.str();
}
Friday, November 19, 2010
ACM-392 Polynomial Showdown with C++
Sunday, November 7, 2010
ACM-382 Perfection with C++
#include <iostream>
#include <iomanip>
#include <list>
using namespace std;
int sqrts(int test);
void compare(int val, int com);
int main()
{
int input;
int result;
list<int> l;
cin>>input;
while(input != 0)
{
l.push_back(input);
cin>>input;
}
cout<<"PERFECTION OUTPUT"<<endl;
list<int>::iterator iter = l.begin();
while( iter != l.end() ) {
result = sqrts(*iter);
compare(*iter, result);
++iter;
}
cout<<"END OF OUTPUT"<<endl;
return 0;
}
int sqrts(int test)
{
int temp = 0;
for(int i = 1 ; i < test ; i++)
{
if(test%i == 0)
{
temp = temp + i;
}
}
return temp;
}
void compare(int val, int sum)
{
if(val > sum)
cout<<setw(5)<<val<<" DEFICIENT"<<endl;
else if(val == sum)
cout<<setw(5)<<val<<" PERFECT"<<endl;
else
cout<<setw(5)<<val<<" ABUNDANT"<<endl;
}
Subscribe to:
Comments (Atom)