蒟蒻不理解a!!!
  • 板块灌水区
  • 楼主Mr_Dong
  • 当前回复8
  • 已保存回复8
  • 发布时间2021/12/9 19:50
  • 上次更新2023/11/3 22:37:14
查看原帖
蒟蒻不理解a!!!
608778
Mr_Dong楼主2021/12/9 19:50

蒟蒻真的不理解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我

2021/12/9 19:50
加载中...