1405:三元一次方程
描述
已知三元一次方程ax+by+cz=d中a、b、c、d的值,按数学的书写风格输出该方程式。
输入
只有一组案例。
四个整数a、b、c、d。(a、b、c保证不全为0)
输出
按数学风格输出该方程式。可以参照样例风格。
样例输入
样例1:
1 2 3 4
样例2:
-1 2 3 4
样例3:
2 -3 5 -6
样例4:
0 2 3 0
样例输出
样例1:(当某项系数为1时,省去该数字)
x+2y+3z=4
样例2:(当某项系数为-1时,省去“1”)
-x+2y+3z=4
样例3:(当某项系数为负数,省去前面的+号)
2x-3y+5z=-6
样例4:(当a、b、c中某项为0时,则该项不需要显示,如果d=0则还需要显示)
2y+3z=0
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int a, b, c, d;
cin >> a >> b >> c >> d;
bool f = true;
//当f为true表示当前还没输出过一项有效项
if (a != 0)
{
if (a == 1)
{
cout << "x";
}
else if (a == -1)
{
cout << "-x";
}
else
{
cout << a << "x";
}
f = false;
}
if (b != 0)
{
if (b >0&&!f)
{
cout << "+";
}
else if (b <0)
{
cout << "-";
}
b = abs(b);
if (b!=1)
{
cout << b ;
}
cout << "y";
f = false;
}
if (c != 0)
{
if (c > 0 && !f)
{
cout << "+";
}
else if (c < 0)
{
cout << "-";
}
c = abs(c);
if (c != 1)
{
cout << c;
}
cout << "z";
}
cout << "=" << d;
return 0;
}