问题描述
描述
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
输入:1 -2 3 4
输出:2 1 3
解题
分析
这个题目还是比较简单的。首先用数组把输入的这四个数字按顺序存起来,然后就可以计算A,B,C三个数的值。
易错点
本题的 A+B和A-B能求出A和B的值,B+C和B-C能求出C和B的值。这两次求出来的B要比较一下,如果相等就存在这样的数,不相等就不存在这样的数。
代码
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int array1[] = new int[4]; //定义一个数组保存输入的值
for(int i=0; i<array1.length; i++){
//在array1[0]中保存A-B的值 在array1[1]中保存A+B的值
//在array1[2]中保存B-C的值 在array1[3]中保存B+C的值
array1[i] = sc.nextInt();
}
int A = (array1[0] + array1[2])/2;
int B1 = (array1[2] - array1[0])/2;
int B2 = (array1[1] + array1[3])/2;
int C = (array1[3] - array1[1])/2;
if(B1 != B2){
System.out.print("No");
}else{
System.out.print(A + " " + B1 + " " + C);
}
}
}