zoukankan      html  css  js  c++  java
  • 第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");
            }
        }
    }
  • 相关阅读:
    Python 写入和读取Excel数据
    postman检查点详解
    禅道安装在不同系统下搭建步骤
    Linux下如何启动和关闭防火墙
    tomcat环境搭建
    Lniux下搭建LNMP环境
    Linux下搭建LAMP环境
    通过XAMPP导入WordPress网站建立个人博客
    在Windows下XAMPP的安装及使用教程
    linux 下安装配置xampp环境
  • 原文地址:https://www.cnblogs.com/dengyt/p/7324403.html
Copyright © 2011-2022 走看看