网易2017校招编程:计算糖果

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

直接计算为什么java就不对c++就可以了
#include<iostream>
using namespace std;

int main()
{
    int m1,m2,m3,m4;
    cin >> m1 >> m2 >> m3 >> m4;

       int A = (m1 + m3) / 2;
       int B = (m3 -m1) / 2;
       int C = (m4 - m2)/2;
       if(A - B == m1 && A + B == m3 &&
          B-C == m2 && B+C == m4)
       {
           cout << A <<" "<< B<<" "<< C << endl;
       }
        else
        {
            cout << "No" << endl;
        }

    return 0;
}

下面数组越界

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a,b,c,d;
        int A,B,C;
        while(in.hasNext()){
            a = in.nextInt();
            b = in.nextInt();
            c = in.nextInt();
            d = in.nextInt();
            A = (a+c)/2;
            B = (c-a)/2;
            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");
        }

    }

}
				
时间: 2024-08-02 18:49:50

网易2017校招编程:计算糖果的相关文章

网易2017校招编程:优雅的点(PHP版本)

题目如下: 小易有一个圆心在坐标原点的圆,小易知道圆的半径的平方.小易认为在圆上的点而且横纵坐标都是整数的点是优雅的,小易现在想寻找一个算法计算出优雅的点的个数,请你来帮帮他. 例如:半径的平方如果为25 优雅的点就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5, 0),一共12个点. <?php function countGracePoint($n){ $count = 0; for($x = 1;$x*$x < $n;$x++){ $y = (

网易2017校招编程题

内推挂了,继续再战! 1.分苹果: 小易去买苹果,有两种包装,一种一袋8个,一种一袋6个,小易要买n个苹果(不能多也不能少),输出袋子最少的购买方案下的袋子,若无法正好买到n个,则输出-1. 解:设8个一袋的买了pack8袋,6个一袋的买了pack6袋.想要总袋子数最少,那么肯定优先买8个一袋的,最多能买n/8袋,先另pack8=n/8,计算该情况下,pack6为多少能满足总苹果数为6,若无法满足,则减少pack8的数量,直到可以满足总量为n. #include<iostream> using

网易2017校招内推笔试练习卷编程题1--1019.数字黑洞20

给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到 一个新的数字.一直重复这样做,我们很快会停在有"数字黑洞"之称的6174,这个神奇的数字也叫Kaprekar常数. 例如,我们从6767开始,将得到 7766 - 6677 = 1089 9810 - 0189 = 9621 9621 - 1269 = 8352 8532 - 2358 = 6174 7641 - 1467 = 6174 ... ... 现给

网易2017校招内推笔试练习卷编程题2--出专辑

你作为一名出道的歌手终于要出自己的第一份专辑了,你计划收录 n 首歌而且每首歌的长度都是 s 秒,每首歌必须完整地收录于一张 CD 当中.每张 CD 的容量长度都是 L 秒,而且你至少得保证同一张 CD 内相邻两首歌中间至少要隔 1 秒.为了辟邪,你决定任意一张 CD 内的歌数不能被 13 这个数字整除,那么请问你出这张专辑至少需要多少张 CD ? 输入描述: 每组测试用例仅包含一组数据,每组数据第一行为三个正整数 n, s, L. 保证 n ≤ 100 , s ≤ L ≤ 10000 输出描述

牛客网编程练习之网易2017校招题:下厨房

水... AC代码: import java.util.Collections; import java.util.HashSet; import java.util.Scanner; import java.util.Set; /** * @author CC11001100 */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Set<Strin

京东2017校招编程题

1.进制均值 尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题,现在,她正在玩一个数值变换的游戏.她发现计算机中经常用不同的进制表示一个数,如十进制数123表达为16进制时只包含两位数7.11(B),用八进制表示为三位数1.7.3,按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是18和11,. 小B感兴趣的是,一个数A如果按2到A-1进制表达时,各个位数之和的均值是多少?她希望你能帮她解决这个问题? 所有的

今日头条2017校招编程题

贪心?瞎搞  先排个序,然后扫一遍,边扫边维护一个数组v   v的长度为3    设vs数组的最后一个是x 如果abs(a[i]-x)大于10 那么贪心的策略我就 添加个v+10相应的ans++. 然后注意一些细节就好了...  我代码写的好挫 /* *********************************************** Author :guanjun Created Time :2016/9/21 19:50:13 File Name :1001.cpp *******

网易2017秋招编程题集合-牛客网

网易2017秋招编程题集合-牛客网 链接:https://www.nowcoder.com/questionTerminal/0147cbd790724bc9ae0b779aaf7c5b50来源:牛客网 如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列.例如: {1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列. 现在给出一个数字序列,允许使用一

网易2017春招笔试真题编程题集合题解

01 双核处理 题目 一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理,假设已知CPU的每个核1秒可以处理1kb,每个核同时只能处理一项任务.n个任务可以按照任意顺序放入CPU进行处理,现在需要设计一个方案让CPU处理完这批任务所需的时间最少,求这个最小的时间. 输入描述 输入包括两行:第一行为整数n(1 ≤ n ≤ 50)第二行为n个整数lengthi,表示每个任务的长度为length[i]kb,每个数均为1024的倍数. 输出描述输出一个整数,表示最少需