竞赛讨论区 > 一道练习题,求大佬指点
头像
gai溜子
发布于 2020-11-25 10:22
+ 关注

一道练习题,求大佬指点

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

输入描述:

输入数据仅一行,包含两个正整数 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]
    };

全部评论

(1) 回帖
加载中...
话题 回帖

本文相关内容

等你来战

查看全部

热门推荐