java - 为什么运行程序会卡死
ringa_lee
ringa_lee 2017-04-18 09:50:04
[Java讨论组]

才学java,写了求素数的小程序,直接卡死。

package Isprime;

public class Isprime {
    public static void main(String[] args) {
        int max=10000;
        boolean [] isPrime=new boolean [max+1];
        for(int i = 0;i
ringa_lee
ringa_lee

ringa_lee

全部回复(2)
PHP中文网
for (int i = 0; i < Math.sqrt(max); i++) {
            if (isPrime[i]) {
                for (int j = i * i; j <= max; j += 2 * i) {
                    isPrime[j] = false;
                }
            }
        }

当i等于0时候,j也为0,j += 2*i永远为0,因此j永远是<=max的,因此死循环了。

PHPz

楼上已经给出答案了,碰到这种问题首先应该debug

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号