• 第8题——计算糖果


    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
    输出例子1:
    2 1 3

    我的代码:
    import java.util.*;//Scanner是util包下的
    public class Main{
        public static void main(String[] args){
            Scanner sc=new Scanner(System.in);
            while(sc.hasNext()){
                int M=sc.nextInt();
                int N=sc.nextInt();
                int X=sc.nextInt();
                int Y=sc.nextInt();
                double m=(double)M;//int型的数直接相除得到的是整数
                double n=(double)N;
                double x=(double)X;
                double y=(double)Y;
                double a=(m+x)/2; //解方程组
                double b=(n+y)/2;
                double c=(y-n)/2;
                int A=(int)a;
                int B=(int)b;
                int C=(int)c;
                if((A==a&&B==b&&C==c)&&(A>=0&&B>=0&&C>=0)){//判断是否为自然数
                    System.out.println(A+" "+B+" "+C);
                }else{
                    System.out.println("No");
                }
            }
            sc.close();
        }
    }

    参考:https://www.nowcoder.com/test/question/done?tid=9685251&qid=46579#summary

    // 要求ABC都为整数
    // 注意多了一个约束条件,即四个式子解3个未知数,所以还要确定满不满足A+B==n3
     
    import java.util.Scanner;
    public class Main {
        public static void main(String[] args){
            Scanner in = new Scanner(System.in);
            int n1 = in.nextInt();
            int n2 = in.nextInt();
            int n3 = in.nextInt();
            int n4 = in.nextInt();
            int A = (n1+n3)/2;
            int B = (n2+n4)/2;
            int C = B-n2;
            if((n1+n3)%2==0&&(n2+n4)%2==0&&(A+B==n3)){
                System.out.println(A+" "+B+" "+C);
            }else{
                System.out.println("No");
            }
        }
    }

     改进:

    import java.util.Scanner;
    public class Main {
        public static void main(String[] args){
            Scanner in = new Scanner(System.in);
            int n1 = in.nextInt();
            int n2 = in.nextInt();
            int n3 = in.nextInt();
            int n4 = in.nextInt();
            int A = (n1+n3)/2;//用前3个方程计算出A B C,需要验证ABC是否为整数,且是否满足第4个方程
            int B = A-n1;
            int C = A-n1-n2;
            if((n1+n3)%2==0&&(B+C==n4)){//因为A是除法得到的,若A为整数,则BC也为整数,所以只需验证A是不是整数
                System.out.println(A+" "+B+" "+C);
            }else{
                System.out.println("No");
            }
        }
    }
  • 相关阅读:
    node中express的中间件之basicAuth
    python练习1--用户登入
    python基础4--文件操作
    python基础3--字符串
    python基础2--字典
    python基础1--列表
    XP下使用IIS访问asp出现无权查看网页问题的解决办法
    jQueryUI Datepicker的使用
    FileUpload控件使用初步
    HTML中表格元素TABLE,TR,TD及属性的语法
  • 原文地址:https://www.cnblogs.com/dengyt/p/7324403.html
Copyright © 2020-2023  润新知