目录
牛客_WY33 计算糖果
解析代码
- A - B = a
- B - C = b
- A + B = c
- B + C = d
这道题目的实质是:判断三元一次方程组是否有解及求解, 1+3可以得到A=(a+c)/2;4-2可以得到C=(d-b)/2; 2+4可以得到B2=(b+d)/2,3-1可以得到B1=(c-a)/2;如果B1不等B2则表达式无解。
#include <iostream>
using namespace std;
bool isTrue(int a)
{
if (a <= 30 && a >= -30)
{
return true;
}
return false;
}
int main()
{
int x1, x2, x3, x4;
cin >> x1 >> x2 >> x3 >> x4;
int a = (x1 + x3) / 2;
int b = (x2 + x4) / 2;
int c = x4 - b;
if (isTrue(a) && isTrue(b) && isTrue(c) &&
a - b == x1 && b - c == x2 && a + b == x3 && b + c == x4)
{
cout << a << " " << b << " " << c;
}
else
{
cout << "No";
}
return 0;
}