一道练习题,求大佬指点

题目描述
小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。

输入描述:

输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手中金币的面值。

输出描述:

输出文件仅一行,一个正整数 N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。
示例1

输入

复制 3 7
3 7

输出

复制 11
11

说明

小凯手中有面值为3和7的金币无数个,在不找零的前提下无法准确支付价值为 1、2、4、5、8、11的物品,其中最贵的物品价值为11。
比11贵的物品都能买到,比如:
12 = 3 x 4 + 7 x 0
13 = 3 x 2 + 7 x1
14 = 3 x 0 + 7 x 2
15 = 3 x 5 + 7 x 0

如下解答可以吗?

 function aa(a,b){
        var maxNum = a*b,arr=[],arr1 = [];
        for(var i = 0;i<maxNum;i++){
            if(i%a!=0&&i%b!=0){
                arr.push(i)
            }
        }
        arr.forEach((item)=>{
            var a1 = Math.ceil(item/a);
            var b1 = Math.ceil(item/b);
            for(var k=0;k<a1;k++){
                for(var j=0;j<b1;j++){
                    if(a*k+j*b ==item)[
                        arr1.push(item)
                    ]
                }
            }
        });
        return arr.filter((item)=>{
            var repeat = false
            arr1.forEach((item1)=>{
                if(item1==item){
                    repeat = true
                }
            });
            return !repeat
        }).sort(function(c,d){return d-c})[0]
    };

全部评论
有一个神奇的公式叫a*b-a-b
3 回复 分享
发布于 2021-10-13 20:36

相关推荐

08-27 21:03
已编辑
成都理工大学 Java
冷花幽露:大概率是了,京东面试就是这样。我上周一面也是20多分钟,面试官问的很刁钻的问题也答上来了,面完过了几天还是没推进,泡池子,昨天一看挂了。如果一面完第2天没有收到2面邀请,基本上不用抱希望了。如果你的bg是985,面试流程也是和我们一样,20多分钟,唯一区别就是面完他们会很快收到二面邮件,而不像我们泡池子然后挂掉
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务