A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息:
A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每个人所拥有的糖果数。现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保证最多只有一组整数A,B,C满足所有题设条件。
输入描述:输入为一行,一共4个整数,分别为A - B,B - C,A + B,B + C,用空格隔开。 范围均在-30到30之间(闭区间)。
输出描述:输出为一行,如果存在满足的整数A,B,C则按顺序输出A,B,C,用空格隔开,行末无空格。 如果不存在这样的整数A,B,C,则输出No
示例 输入 1 -2 3 4 输出 2 1 3
【解题思路】
用 x1,x2,x3,x4分别代表四个输入的整数 找到其关于a,b,c的关系 列出相关等式。
若结果是整数 说明计算正确 输出结果
若结果存在一个非整数 则表示不能找到满足的整数集合 即输出No
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int x1,x2,x3,x4;
float a,b,c;
while(sc.hasNext()){
x1 = sc.nextInt(); //a-b
x2 = sc.nextInt(); //b-c
x3 = sc.nextInt(); //a+b
x4 = sc.nextInt(); //b+c
a = (x1+x3)/2f;
b = (x2+x4)/2f;
c = (x4-x2)/2f;
if((a-((x1+x3)/2))!=0){
System.out.print("No");
return;
}
if(((b-((x2+x4)/2))!=0)||((b-((x3-x1)/2))!=0)){
System.out.print("No");
return;
}
if((c-((x4-x2)/2))!=0){
System.out.print("No");
return;
}
System.out.print((int)a+" "+(int)b+" "+(int)c);
}
}
}