蚂蚁笔试0309第三题

#牛客AI配图神器##牛客创作赏金赛##牛客创作赏金赛##ai智能作图#

```java

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        /**
        只要大的除小的就可以了
         */
        Scanner in = new Scanner(System.in);

        int n = in.nextInt();
        int[]a = new int[n];
        for (int i = 0; i < n; i++)a[i] = in.nextInt();

        Arrays.sort(a);
        long s = 0;
        for (int i = 0; i < n; i++) { //枚举起点
            int p = 1;
            int st = a[i];
            int l = i - 1, r = 0;
            while (st * p <= a[n - 1]) {   //寻找i的每个倍数的最近处
                int tar = st * p;
                r = find(a, tar);  //二分查找 p倍的最小处
                 s += (r - l) * (p - 1);
                l = r;
                p++;
            }
            s += (n  - l) * (p-1);//末尾计算
        }

        System.out.println(s);
    }

    public static int find(int[]a, int t) { //找到大于等于t的最小位置

        int l = 0, r = a.length - 1;
        while (l < r) {

            int mid = (l + r) >> 1;

            if (a[mid] < t)l = mid + 1;
            else r = mid;
        }
        return r;
    }
}```
全部评论
桶装起来计算根号和倍数也可以
点赞 回复 分享
发布于 03-09 20:47 沙特阿拉伯

相关推荐

08-15 12:09
门头沟学院 Java
点赞 评论 收藏
分享
06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
DKS233:项目写太简单了,你用什么技术实现了什么功能,优化了多少,分了哪些模块,解决了哪些难点,最好分模块写,你写的太模糊了。精通还是少用吧,你确定问你底层你扛的住吗,最好用熟悉。具备良好**意识,这种空话不要写,技能层面,要写就写实在的,比如“熟悉常用数据结构,如,堆,栈,链表,哈希表,平衡树”这种
你的简历改到第几版了
点赞 评论 收藏
分享
08-13 11:50
门头沟学院 Java
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

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