笀彧 2021-03-27 15:06 采纳率: 50%
浏览 37
已采纳

运行出来的结果少1?没想明白

 

public class Main {
    public static void main(String[] args) {        
        int l=2019;
        int d = 324;
        int exchange = 0;
        int s=0;
        for (int i = 0;; i++) {
             exchange =l-d;             
             if (exchange == 0) {
                System.out.println(s);
                break;
             }
             l = exchange>d?exchange:d;
             d = exchange>d?d:exchange;
             s++;    
        }
    }
}

  • 写回答

1条回答 默认 最新

  • 小亮点科技 2021-03-27 15:16
    关注

    当 

    if (exchange == 0) {
                    System.out.println(s);
                    break;
    }

    这个条件成立时其实是最后一个正方形。这个时候应该在break前s++

    if (exchange == 0) {

                    s++
                    System.out.println(s);
                    break;
    }

    明白了吗?

    希望有对你有所帮助,欢迎关注我的博客,我会持续发布技术文章,谢谢。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥20 python忆阻器数字识别
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api