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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • box–shadow_shadowboxing

    box–shadow_shadowboxing今天课堂上有学生问到box-shadow这个属性,那么下面我们就来详细的解说下这个属性它的用法,box-shadow是css3中的一个属性,它可以向框添加一个或多个阴影。首先我们来看它的语法:bo

    2022年8月4日
  • python安装库的方法「建议收藏」

    python安装库的方法「建议收藏」目录前言:??python安装库方法大全(以安装pygame库为例)?方法一、在pycharm内部直接安装【最简单的方法(直接上图)】?方法二、(在终端安装库)安装:✨1、使用pipinstall+(库的名称)直接安装✨2、使用国内镜像安装(加了镜像地址速度杠杠滴快??)​​​?​​​​​​​?方法二报以下错怎么办?​​​​​​​?小结方法一和方法二结语前言:对于新手来说,库的安装是遇到的第一个挑战,我也入了很多坑,所以想出一期安装库的步骤作者希望:.

    2022年10月2日
  • js倒计时跳转页面_什么代码可以实现网页的跳转

    js倒计时跳转页面_什么代码可以实现网页的跳转以下是倒计时120秒跳转代码,对于需要倒计时的页面非常实用,如果倒计时后不想跳转,可以注销掉location.href=这行代码<spanclass=”time”></span><script>vart=120;vartime=document.getElementsByClassName(“time”)[0];functionfun(){t–;time.innerHTML=t;if(t<=0

    2022年8月12日
  • 微信公众号网页开发之拍照、上传本地图片

    微信公众号网页开发之拍照、上传本地图片微信网页开发JS-SDK说明文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#0绑定域名登录微信公众平台进入“公众号设置”->“功能设置”,填写“JS接口安全域名”;设置JS接口安全域名后,公众号开发者可在该域名下调用微信开放的JS接口;引入JS文件在需要调用JS接口…

    2022年5月29日
  • java 获取当前时间的三种方法_java获取单层文件夹大小

    java 获取当前时间的三种方法_java获取单层文件夹大小A获取当前时间:Java代码importjava.text.SimpleDateFormat;importjava.util.Date;publicclassGetCurrentTime{/*获得当前时间*/publicstaticStringgetCurrentTime(){DatecurrentTime=newDate();SimpleDateFormatformat…

    2022年9月5日
  • mac clion激活码【2021.8最新】

    (mac clion激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月26日

发表回复

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

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