acm简单的问题一直wrong answer
有一些三个整数构成的整数群,它的结构是:第一行整数N表示后面有N个几个整数群,每个整数群由三个整数组成。尝试用+、-、×、/(整除)来凑前两个数的计算结果,以图与第三个整...
有一些三个整数构成的整数群,它的结构是:第一行整数N表示后面有N个几个整数群,每个整数群由三个整数组成。 尝试用+、-、×、/(整除)来凑前两个数的计算结果,以图与第三个整数相等。如果能凑到相等,则输出该表达式,否则,输出None。输入将保证若表达式存在,则一定唯一。
Sample Input:
5
123 1234 10
12 34 22
12 12 24
5678910 7 56789
9 4 2
Sample Output:
1234/123=10
34-12=22
12+12=24
None
9/4=2
程序如下
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
string convertToString(double x)
{
ostringstream o;
if(o<<x)
{
return o.str();
}
return "error";
}
int main(int argc,char *argv[])
{
int n,a,b,c;
string s,s1,s2;
vector<string> v;
cin>>n;
for(int j=0;j<n;j++)
{
cin>>a>>b>>c;
if(a+b==c)
{
s=convertToString(a)+"+"+convertToString(b)+"="+convertToString(c);
v.push_back(s);
continue;
}
if(a-b==c||b-a==c)
{
s=convertToString(a>b?a:b)+"-"+convertToString(b>a?a:b)+"="+convertToString(c);
v.push_back(s);
continue;
}
if(a*b==c)
{
s=convertToString(a)+"*"+convertToString(b)+"="+convertToString(c);
v.push_back(s);
continue;
}
if(a/b==c||b/a==c)
{
s=convertToString(a>b?a:b)+"/"+convertToString(b>a?a:b)+"="+convertToString(c);
v.push_back(s);
continue;
}
else
v.push_back("None");
}
for(int i=0;i<v.size();i++)
cout<<v[i]<<endl;
return 0;
}
编译没有错,但一直wrong answer 展开
Sample Input:
5
123 1234 10
12 34 22
12 12 24
5678910 7 56789
9 4 2
Sample Output:
1234/123=10
34-12=22
12+12=24
None
9/4=2
程序如下
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
string convertToString(double x)
{
ostringstream o;
if(o<<x)
{
return o.str();
}
return "error";
}
int main(int argc,char *argv[])
{
int n,a,b,c;
string s,s1,s2;
vector<string> v;
cin>>n;
for(int j=0;j<n;j++)
{
cin>>a>>b>>c;
if(a+b==c)
{
s=convertToString(a)+"+"+convertToString(b)+"="+convertToString(c);
v.push_back(s);
continue;
}
if(a-b==c||b-a==c)
{
s=convertToString(a>b?a:b)+"-"+convertToString(b>a?a:b)+"="+convertToString(c);
v.push_back(s);
continue;
}
if(a*b==c)
{
s=convertToString(a)+"*"+convertToString(b)+"="+convertToString(c);
v.push_back(s);
continue;
}
if(a/b==c||b/a==c)
{
s=convertToString(a>b?a:b)+"/"+convertToString(b>a?a:b)+"="+convertToString(c);
v.push_back(s);
continue;
}
else
v.push_back("None");
}
for(int i=0;i<v.size();i++)
cout<<v[i]<<endl;
return 0;
}
编译没有错,但一直wrong answer 展开
2个回答
2014-03-05
展开全部
你可以问问培优班的老师
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询