int型转换为long型遇到的一个小问题

int型转换为long型遇到的一个小问题LeetCode上有一道题:给出一个数n,求(0,n)之间素数的个数。然后我采用埃拉托斯特尼筛法在每次找到一个素数时,将能被素数整除的数排除掉。但是,在进行int类型转换的时候会报:java.lang.ArrayIndexOutOfBoundsException代码如下:publicintcountPrimes(intn){boolea…

大家好,又见面了,我是你们的朋友全栈君。

        LeetCode上有一道题:给出一个数 n ,求(0, n)之间素数的个数。然后我采用埃拉托斯特尼筛法在每次找到一个素数时,将能被素数整除的数排除掉。但是,在进行int类型转换的时候会报:java.lang.ArrayIndexOutOfBoundsException

代码如下:

public int countPrimes(int n) {
        boolean[] notPrimes = new boolean[n + 1];
        int count = 0;
        for(int i = 2; i < n; i++){
            if(notPrimes[i]){
                continue;
            }
            count++;
            //for(long j = (long) (i * i); j < n; j += i) 会报错
            for(long j = (long)i * i; j < n; j += i){
                notPrimes[(int)j] = true;
            }
        }
        return count;
    }

原因是:java中,int类型为32位,范围 -2^31-1~2^31,当超出这个范围会发生数据溢出,得到错误的数据,然后再转型为long型。所以是先转型再计算。 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135675.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • burpsuite 越权_挖洞经验 | 用BurpSuite实现越权漏洞(IDOR)的自动发现识别

    burpsuite 越权_挖洞经验 | 用BurpSuite实现越权漏洞(IDOR)的自动发现识别这里分享一个自动化发现IDOR(越权)漏洞的方法,那就是在BurpSuite中利用Autozie和Autorepeater插件实现IDOR漏洞的探测识别,而无需针对每个请求手动去变化参数或请求。IDOR(越权)漏洞:也称“不安全的直接对象引用”,场景发生于当用户对内部资源的访问请求,或基于用户提供的输入对象进行访问时,服务端未进行合理的权限验证,导致当前用户可以未经授权访问获取到不属于自己账户权限…

    2022年6月4日
    71
  • 《架构之美》笔记_印象笔记如何创建目录

    《架构之美》笔记_印象笔记如何创建目录美是创造矛盾并解决矛盾。架构的多关注点(例如业务逻辑、系统扩展性、持久、并发)和简洁性就是一种矛盾,美丽的架构能解决这种矛盾,使人内心产生愉悦;随着关注点的增加,架构也在不断演进;术:分层、组件化、服务化、标准化、缓存、分离、队列、复制、冗余、代理;道:如何恰到好处地使用术,例如顿悟变化的道理、博弈中寻找平衡、相对与绝对的奥秘、开放的心态;爱因斯坦说:『让它尽可能简单,但不要过于简单』,美

    2025年6月10日
    4
  • 《FFmpeg从入门到精通》读书笔记(二)[通俗易懂]

    《FFmpeg从入门到精通》读书笔记(二)[通俗易懂]写在前面2019.06.18第三章知识点(未进行排版)第三章FFmpeg转封装一、MP4格式标准MP4文件由许多个Box与FullBox组成;每个Box由Header和Data两部分组成;FullBox是Box的扩展,其在Box结构的基础上,在Header中增加8位version标志和24为flags标志;Header包含了整个Box的长度的大小(size)和类型(ty…

    2022年6月26日
    23
  • 视频压缩算法的相关知识(转载)

    视频压缩算法的相关知识(转载)视频压缩算法的相关知识视频压缩的基本原理,一些常见压缩算法的概念视频压缩算法的相关知识视频压缩基本概念视频压缩算法的相关知识MPEG-1MPEG视频压缩编码后包括三种元素:I帧(I-fram

    2022年7月2日
    22
  • Qt之log数据展示模块简要实现

    Log模块主要用于实时测井数据的显示和测后曲线数据的预览和打印,为更好的展示对Qt中相关知识点的应用,特以Log模块为例对其进行简要实现。内容导图:一、功能需求1、界面效果图Log模块实现曲线

    2021年12月29日
    46
  • 视图索引

    视图索引创建索引视图  视图也称为虚拟表,这是因为由视图返回的结果集其一般格式与由列和行组成的表相似,并且,在 SQL 语句中引用视图的方式也与引用表的方式相同。标准视图的结果集不是永久地存储在数据库中。查询每次引用视图时,Microsoft® SQL Server™ 2000 会动态地将生成视图结果集所需的逻辑合并到从基表数据生成完整查询结果集所需的逻辑

    2022年7月22日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号