博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第8题——计算糖果
阅读量:6000 次
发布时间:2019-06-20

本文共 2403 字,大约阅读时间需要 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"); } }}

 

转载于:https://www.cnblogs.com/dengyt/p/7324403.html

你可能感兴趣的文章
64位linux下的gns3网络模拟器配置
查看>>
让VMware ESX中的虚拟机随esx开机自动启动
查看>>
Electron Cash钱包存BCH教程
查看>>
自定义key解决zabbix端口监听取值不准确的问题
查看>>
入门级----黑盒测试、白盒测试、手工测试、自动化测试、探索性测试、单元测试、性能测试、数据库性能、压力测试、安全性测试、SQL注入、缓冲区溢出、环境测试...
查看>>
composer 安装 ubuntu 12.04
查看>>
微服务(二)hystrix
查看>>
Performing a thread dump in Linux or Windows--reference
查看>>
推荐系统中常用算法 以及优点缺点对比
查看>>
cocos2d-x v3.2环境配置(现在3.x版本号可以配置该)
查看>>
穷举法解决旅行商问题
查看>>
Go语言标准库之JSON编解码
查看>>
winpcap 发送数据包
查看>>
cisco 出现 %Error opening tftp://255.255.255.255 错误解决办法
查看>>
VIM编辑器
查看>>
IE主页被篡改 地址框变灰
查看>>
linux上架设l2tp+ipsec ***服务器
查看>>
Facebook和用户界面会如何扭曲你说的话
查看>>
安卓混合开发之Cordova,NativeWebView两种实现
查看>>
git设置socks代理
查看>>