分蛋糕-招商银行信用卡中心春招实习生技术岗A卷

有两种蛋糕,榴莲蛋糕和冰淇淋蛋糕,其中榴莲蛋糕被分成了a块,冰淇淋蛋糕被分成了b块。总共有n个盘子,每种蛋糕能够整除均分到各个盘子里,要求一个盘子里面不能含有两种蛋糕,每个盘子至少含有2块蛋糕,所有的蛋糕必须放到盘子里面去。求一个盘子里最少有多少块蛋糕。不能做到的话返回0。

示例1

输入例子:

2,5,4

输出例子:

4

例子说明:

榴莲蛋糕被分成了5块,冰淇淋蛋糕被分成了4块,分别放到2个盘子里面去,1个盘子5块榴莲蛋糕,1个盘子4块冰淇淋蛋糕,1个盘子里最少4块蛋糕,返回4。

示例2

输入例子:

5,3,2

输出例子:

0

例子说明:

榴莲蛋糕被分成了3块,冰淇淋蛋糕被分成了2块,分别放到5个盘子里面去,要求每个盘子至少含有2块蛋糕,无法做到,返回0。

示例3

输入例子:

3,4,6

输出例子:

2

例子说明:

榴莲蛋糕被分成了4块,冰淇淋蛋糕被分成了6块,分别放到3个盘子里面去,要求每个盘子至少含有2块蛋糕,榴莲蛋糕分为2个2块的,分别放进2个盘子,冰淇淋蛋糕6块全部直接放进1个盘子,最少2块,返回2。

我的想法:

1.n个盘子,用for遍历装不同类型蛋糕盘子分法。

        要求一个盘子里面不能含有两种蛋糕

        且蛋糕所有的蛋糕必须放到盘子里面去

2.用a/i<2||b/(n-i)<2||a%i!=0||b%(n-i)!=0条件判断分法对不对。

        其中a/i<2||b/(n-i)<2满足题目条件每个盘子至少含有2块蛋糕

        其中a%i!=0||b%(n-i)!=0满足题目条件每种蛋糕能够整除均分到各个盘子里

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 n个盘子
     * @param a int整型 榴莲蛋糕a块
     * @param b int整型 冰淇淋蛋糕b块
     * @return int整型
     */
    public int minCake (int n, int a, int b) {
        // write code here
        if(a+b<2*n){
            return 0;
        }
        int A=0;
        int B=0;
        int minA=10000;
        int minB=10000;
        for(int i=1;i<n;i++){
            if(a/i<2||b/(n-i)<2||a%i!=0||b%(n-i)!=0){
                continue;
            }
            A=a/i;
            B=b/(n-i);
            minA=Math.min(minA,A);
            minB=Math.min(minB,B);
        }

        return Math.min(minA,minB);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值