蒟蒻真的不理解a!
前提说好:这是一道大神的原创题,本蒟蒻还是觉得大神很牛* 的!!不针对任何人,只是单纯的吐槽说一下。。。
那么~我们开始吧~~~
我是题目:
题目背景
小L最近学习了十字相乘法,于是想闲的慌的写一个程序来运算十字相乘
题目描述
由于小L太菜了,所以请你写一个程序来运算
给你四个整数a,b,c,d,求出(ax+b)(cx+d)的展开式
注:
1.ax代表a * x
2.最后输出的展开式为降幂排列的二次三项式
输入格式
四个整数 a,b,c,d ( -100 <= a,b,c,d <= 100 )
输出格式
一个降幂排列的二次三项式
详情见样例
输入输出样例
输入
2 3 4 5
输出
8x^2+22x+15
说明/提示
x的平方用"x^2"代替
大神的代码:
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int a,b,c,d;
cin>>a>>b>>c>>d;
if (a*d+b*c>0 && (a>0 || b>0 || c>0 || d>0))
{
if (b*d>0)
{
cout<<a*c<<"x^2+"<<a*d+b*c<<"x+"<<b*d;
}
else if (b*d<0)
{
cout<<a*c<<"x^2+"<<a*d+b*c<<'x'<<b*d;
}
else
{
cout<<a*c<<"x^2+"<<a*d+b*c<<'x';
}
}
else if (a*d+b*c>0 && (a<0 && b<0 && c<0 && d<0))
{
cout<<a*c<<"x^2-"<<a*d+b*c<<"x+"<<b*d;
}
else if (a*d+b*c<0)
{
if (b*d>0)
{
cout<<a*c<<"x^2"<<a*d+b*c<<"x+"<<b*d;
}
else if (b*d<0)
{
cout<<a*c<<"x^2"<<a*d+b*c<<'x'<<b*d;
}
else
{
cout<<a*c<<"x^2"<<a*d+b*c<<'x';
}
}
else if (a==0 && b==0 && c==0 && d==0)
{
cout<<0;
}
else
{
if (b*d>0)
{
cout<<a*c<<"x^2"<<'+'<<b*d;
}
else if (b*d<0)
{
cout<<a*c<<"x^2"<<b*d;
}
else
{
cout<<a*c<<"x^2";
}
}
return 0;
}
这大神的代码,是因为钻研了太长时间还是90分,无奈问问大神源代码是啥,都知道,直接套题解或答案是非常传统的缺德不好的行为(我是真不知道最后一个测试点为啥过不了啊喂!),那么啊~
上代码(我的代码):
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int a,b,c,d;
cin>>a>>b>>c>>d;
if(a==0&&b==0)
{
cout<<0;
return 0;
}
if(a*c==1)
{
cout<<"1x^2";
}
else if(a*c==-1)
{
cout<<"-1x^2";
}
else if(a*c!=0)
{
cout<<a*c<<"x^2";
}
if(a*d+b*c<0)
{
if(a*d+b*c==-1)
{
cout<<"-"<<"x";
}
else
{
cout<<"-"<<abs(a*d+b*c)<<"x";
}
}
else if(a*d+b*c>0)
{
if(a*d+b*c==1)
{
cout<<"x";
}else
{
cout<<"+"<<a*d+b*c<<"x";
}
}
if(b*d>0)
{
cout<<"+"<<b*d;
}
else if(b*d<0)
{
cout<<"-"<<abs(b*d);
}
return 0;
}
所以是说... 我的代码没有问题,而题。。。测试点给错了啊喂(#`O′)。
所以是可能是大神的测试点错了,也可能是我考虑的太多了,大神压根就没想考这一点。
最后再吐槽讲一下哈~
我真的就研究了两天。。。
但是毕竟是人家辛辛苦苦出的题(有bug是非常可以理解的)。
最最最后在说一遍!!!!
我只是对题的吐槽说一下,不针对任何人与任何team,不要无缘无故的来p我