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)
上一篇 2022年6月4日 下午7:36
下一篇 2022年6月4日 下午7:36


相关推荐

  • 华为云Flexus+DeepSeek征文|云原生时代的AI智能:华为云Dify平台的技术洞察与应用价值:LLM+Bocha如何打造出三体浏览器

    华为云Flexus+DeepSeek征文|云原生时代的AI智能:华为云Dify平台的技术洞察与应用价值:LLM+Bocha如何打造出三体浏览器

    2026年3月16日
    2
  • Simhash_LinkedHashSet

    Simhash_LinkedHashSetsimhash与重复信息识别来源:http://grunt1223.iteye.com/blog/964564在工作学习中,我往往感叹数学奇迹般的解决一些貌似不可能完成的任务,并且十分希望将这种喜悦分享给大家,就好比说:“老婆,出来看上帝”…… 随着信息爆炸时代的来临,互联网上充斥着着大量的近重复信息,有效地识别它们是一个很有意义的课题。例如,对于搜索引擎的

    2026年4月20日
    6
  • 7.3 超标量流水线

    7.3 超标量流水线计算机组成 7 流水线处理器 7 3 超标量流水线超标量流水线在现代的处理器当中得到了广泛的应用 也就是这种技术给我们带来了出色的处理器性能 那究竟什么才是超标量流水线 它又是如何工作的呢 我们这一节将一起探讨这个问题 这个是我们之前已经构建好的一条流水线 但是如果我们觉得它的吞吐率还不够高 其中一个改进的方向就是加深流水线 而与之相对另一个改进的方向就是拓宽流水线 而拓宽流水线

    2026年3月18日
    2
  • app抓包工具_【旧版IPA抓包教程2】超便捷苹果旧版本APP抓包/轻松抓取你想要的版本,旧版app任意下载…

    app抓包工具_【旧版IPA抓包教程2】超便捷苹果旧版本APP抓包/轻松抓取你想要的版本,旧版app任意下载…之前呢就已经给大家发过一期抓包旧版ipa的教程,果然方法多种多样,今天又给大家带来一个更加简便快捷的的抓包软件,过程很简单,是个正常人都能学会,赶紧学起来吧~首先还是电脑一台,包含AppStore的iTunes的一个,旧版抓包程序一个,这次所需的工具就是多出来一个⛏镐子一样的玩意,这个程序是免费的,网上应该也能找到。也可以在文章末尾找到关键词回复下载。首先打开iTunes并登…

    2022年5月7日
    713
  • 自己编辑的英语stem课程

    自己编辑的英语stem课程Lesson1 Excuseme!  对不起!   Listentothetapethenanswerthisquestion.Whosehandbagisit?  听录音,然后回答问题,这是谁的手袋?   Excuseme!  Yes?  Isthisyourhandbag?  Pardon?  Isthisyourhandbag?  …

    2022年5月6日
    34
  • IP地址分类及划分「建议收藏」

    IP地址分类及划分「建议收藏」IP地址分类IP地址由4段数据构成,每段1字节,8位二进制数。根据网络号和主机号所占位数的不同,将IP地址分为四类。A类地址A类IP地址,第一段一字节数据表示网络号,剩下三段表示主机号。规定网络号最高位必须为0,则可以表示00000001-01111111,即126(除去全0和全1)个网络,剩下的3个字节数据可以表示2^24-2个主机。A类子网掩码255.0.0.0.B类地址B类IP地址,前两段2个字节数据表示网络号,剩下两段表示主机号。规定网络号最高位必须为10,则范围从100000000

    2022年6月10日
    55

发表回复

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

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