什么叫貌似正确

有一类算法特别危险,它【0】。

开始练习 →

在前一百多个数上对拍

下面 fast_prime 只拿 2、3、5、7 去试除。把它和正确版在 2~120 上对拍一遍,数一数一致了几次: #include <algorithm> #include <iostream> #include

开始练习 →

把第一个反例找出来

接着往上找:从 2 一直试到 1000,第一个让两个版本给出不同结论的数是几?补全 first_diff。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

换个测试范围结论就翻了

同一个 fast_prime、同一种验收办法(对拍),只把范围从 2..120 换成 2..200,两次的结论分别是什么?输出格式如 一致/不一致。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

循环不变式是什么

第 1 步:下面那格是 best 第 2 步:前 1 个里 best 最大 第 3 步:前 2 个里 best 最大 第 4 步:前 3 个里 best 最大 第 5 步:前 4 个里 best 最大 第 6 步:前 5 个里 best 最

开始练习 →

用不变式证明要验哪三件事(C++)

拿不变式证明一个循环是对的,要验的三件事是【0】。

开始练习 →

不变式和普通断言差在哪

在循环里随手加一句 assert,和写一个不变式的区别是【0】。

开始练习 →

每一轮的 best 是什么

数组 {17, 24, 15, 13, 23},把每一轮结束时的 best 都打出来: #include <algorithm> #include <iostream> #include <string>

开始练习 →

全负数组上它给出什么

一个常见的写法是 best = 0。拿全是负数的数组跑一遍: #include <algorithm> #include <iostream> #include <string> #include <

开始练习 →

把不变式写成一句 assert

在循环体末尾加一句 assert,把「best 是前 i+1 个里最大的」真正验起来,并数一数一共验过几轮。输出「最大值/验过几轮」。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →