阿里笔试母猪,购物车(20%)

第一题

小明是一个数学家,他喜欢用数字给事物命名编号,他给自己编号为1,同时在2019年小明开办了一个农场,准备开始养母猪,他专门给农场的母猪用以下数列2,3,4,5,7,9,12,16,21,28,37,49,65,86,114,151...进行命名。假设农场的母猪永远不会死,小母猪出生后3年后成熟,成熟后从第三年开始每年只会生一只小母猪。第一年农场,有一只刚刚出生的小母猪和一只成熟的母猪(本年不再生小猪,下一年开始生小猪),并给他们编号为2和3。请问,第m只母猪编号为多少?其是哪一年出生的?小明还准备了1份礼物,专门颁给农场第1到m只的母猪颁奖,颁奖规则如下:选出第1到m只的母猪翻转编号(114编号翻转为411)为第k大的母猪进行颁奖,请问是第几只猪获奖?提示: f(n)=f(n-2)+f(n-3)

    输入:
    输入两个参数半角逗号分隔
    m,k
    输出:
    输出三个数字半角逗号分隔
    第m只母猪编号,哪一年出生,第几只小猪获奖
    输入范例:
    20,3
    输出范例:
    465,2024,15

程序:

import java.util.Scanner;

public class Main {

    public Main() {

    }

    static String calculate(int m, int k) {

    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String[] line = in.nextLine().split(",");
        int m = Integer.valueOf(line[0]);
        int k = Integer.valueOf(line[1]);
        ;
        System.out.println(calculate(m, k));

    }
}

第二题

小明在双十一晚会上抽奖赢得了一次天猫超市免单的机会,
享受在一个包裹内最大体积V,最大重量M内免单
假设商品i,体积Vi,重量Mi,库存Si,价格Pi
目前天猫超市的商品分为生鲜水产(1)、食品酒水(2),美妆个护(3),居家生活(4)四大类
生鲜水产不与美妆个护同包裹
请你帮助小明在购物车里添置商品使得总价值最大

    输入:
    商品总种类n,包裹限定总体积v,包裹限定总重量m(接下来会有n行)
    商品1体积,商品1重量,商品1库存,商品1价格,商品1类型
    商品2体积,商品2重量,商品2库存,商品2价格,商品2类型
    商品3体积,商品3重量,商品3库存,商品3价格,商品3类型
    输出:
    购物车里商品的总价值
    输入范例:
    3,40,30
    10,10,10,10,1
    13,10,12,11,3
    3,4,6,5,3
    输出范例:
    33

程序:

public class Main {
    private static int totalPrice(int categoryCount, int totalVolume, int totalWeight, int[] volume, int[] weight,
                                  int[] stock, int[] price, int[] itemType) {


    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String[] line = in.nextLine().split(",");
        //总共商品种类
        int categoryCount = Integer.valueOf(line[0]);
        //快递体积
        int totalVolume = Integer.valueOf(line[1]);
        //快递重量
        int totalWeight = Integer.valueOf(line[2]);

        //物品体积
        int[] volume = new int[50];
        //重量
        int[] weight = new int[50];
        //件数
        int[] stock = new int[50];
        //价格
        int[] price = new int[50];
        //类型
        int[] itemType = new int[50];

        for (int i = 1; i <= categoryCount; i++) {
            line = in.nextLine().split(",");
            volume[i] = Integer.valueOf(line[0]);
            weight[i] = Integer.valueOf(line[1]);
            stock[i] = Integer.valueOf(line[2]);
            price[i] = Integer.valueOf(line[3]);
            itemType[i] = Integer.valueOf(line[4]);
        }

        in.close();

        System.out.println(totalPrice(categoryCount, totalVolume, totalWeight, volume, weight, stock, price, itemType));

    }
}
#阿里巴巴##笔试题目##Java#
全部评论
我觉得第二题答案是不是有问题,第二个物品选一件,第三件物品选五件,不是可以36吗
3 回复
分享
发布于 2019-04-12 21:58
我购物车40%,没有去做生猪。。。
点赞 回复
分享
发布于 2019-04-12 20:48
小红书
校招火热招聘中
官网直投
被猪玩
点赞 回复
分享
发布于 2019-04-12 20:51
输入用例第20只猪为啥是2024年出生。。
点赞 回复
分享
发布于 2019-04-12 20:51
想问一下第一题购物车示例答案第二个为啥是2024 我怎么觉得应该是2027
点赞 回复
分享
发布于 2019-04-12 20:51
我以为就一题
点赞 回复
分享
发布于 2019-04-12 20:57
点赞 回复
分享
发布于 2019-04-12 21:14
f(n)=f(n-2)+f(n-3)求编号 得出第一问  f(n)=f(n-1)+f(n-2)求数量 遍历找到第一个大于等于m的数,求下标+2019 上面两个递推式是不一样的 一个3阶一个2阶 都可以用矩阵乘法二分优化 第三个我直接全部翻转然后调用Arrays.sort
点赞 回复
分享
发布于 2019-04-12 21:23
生猪问题中的k那个参数代表什么
点赞 回复
分享
发布于 2019-04-12 21:47

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务