【牛客网OJ题】计算糖果

    xiaoxiao2025-05-17  42

    题目描述:

    A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息:A-B, B-C, A+ B, B+C.这四个数值.每个字代表每个人所拥有的糖果数.现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保证最多只有一组整数 A,B,C满足所有题设条件。

    输入描述:

    输入为一行,一共4个整数,分别为A-B, B- с, A+в, в+ c,用空格隔开。 范围均在-30到30之间(闭区间)。

    输出描述:

    输出为一行,如果存在满足的整数A, B, C则按顺序输出A, B, c,用空格隔开,行末无空格。如果不存在这样的整数A, B, c,则输出No

    示例1

    输入

    1  -2  3  4

    输出

    2 1 3

    分析:

    下面给出了两种算法,但是思想是一样的,只要保证第一个数加第二个数减去第三个和第四个数的差是恒等的,那么肯定是存在满足条件的A,B,  C。

    第一种:

    import java.util.*; public class Main { public static void main(String[] args){ Scanner input=new Scanner(System.in); int m=input.nextInt(); int n=input.nextInt(); int p=input.nextInt(); int q=input.nextInt(); if ((m+n)!=(p-q)){ System.out.println("No"); }else { int A=(m+p)/2; int B=(n+q)/2; int C=q-B; System.out.println(A+" "+B+" "+C); } } }

    第二种:

    import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); int d = sc.nextInt(); int A = (a+c)/2; int B = (c-a)/2; int C = (d - b)/2; if(A-B==a && B-C == b && A+B ==c && B+C == d){ System.out.println(A+" "+B +" "+C); }else{ System.out.println("No"); } } }

     

    最新回复(0)