iteye_6853 2010-12-23 22:40
浏览 245
已采纳

计算int所有正整数的和??

    long sum = 0L;
    final int max = Integer.MAX_VALUE;
    for (int i = 0; i <= max; i++) {
        sum += i;
    }
    System.out.println(sum);

请问这段代码问题在哪??为什么每次cpu100%

  • 写回答

2条回答 默认 最新

  • dyccsxg 2010-12-24 09:01
    关注

    由 int 溢出引起的死循环
    [code="java"] long sum = 0L;
    final int max = Integer.MAX_VALUE;

        for (int i = 0; i <= max; i++) { 
            sum += i; 
            if (i == max){
                // 这里跳出循环,否则 i++ 之后由于发生溢出,
                // i 会变成负数,陷入死循环 
                break;
            }
        }
    
        System.out.println(sum);[/code]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)