zhujuntao1 2023-04-08 14:02 采纳率: 75%
浏览 31
已结题

为啥结果不是-2 而是0?


 Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        int odd=0;
        int even=0;
        int sum=0;
        for (int i=1; i <= n; i++) {
            if (i % 2 != 0) {
                odd = i;
            } else {
                even = i;
            }
            sum += odd - even;
        }
        System.out.println(sum);
  • 写回答

5条回答 默认 最新

  • 创意程序员 2023-04-08 14:25
    关注

    结果不会有-2,只会有0和1。
    如果进入循环,至少执行1次,odd=1,even=0,sum=1;如果再次执行,odd不变,even比odd大1,sum清0。如果循环继续,odd比even大1,sum又变1;再继续,even比odd大1,sum清0。结果只会在0和1两者之间变化。即输入奇数,结果为1,输入偶数,结果为0。输入<=1不会进入循环。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月16日
  • 已采纳回答 4月8日
  • 创建了问题 4月8日

悬赏问题

  • ¥15 按颜色进行点云分割-python
  • ¥15 Matlab如何实现汽车变道切入场景的批量仿真
  • ¥20 COMSOL频域研究,要加法向加速度的话,加速度随时间变化该如何设置?
  • ¥15 无刷电机要通过什么才能做各种动作
  • ¥15 VS2010通过OnCtlColor函数改变radio控件字体的颜色为白色,但是程序运行后发现不起作用,怎么办?
  • ¥15 Qt中实现子线程和管理线程类之间实时通信
  • ¥15 cacls 命令如何解除锁定文件夹?
  • ¥50 C++使用TWAIN协议如何实现A3幅面扫描仪扫描A4横向
  • ¥15 Vue3重构Nuxt3,出现客户端数据和服务端数据不一致的情况
  • ¥15 如何在sql server里完成筛选