健身打卡最少额外打卡次数计算问题及代码实现
```cpp #include <iostream> #include <vector> using namespace std; int main() { int n, k; cin >> n >> k; int c; cin >> c; vector<int> compulsory_days(c); for (int i = 0; i < c; ++i) { cin >> compulsory_days[i]; } // 定义变量prcl用于存储最少额外打卡次数 int prcl = 0; int last_day = 0; int index = 0; for (int day = 1; day <= n; ++day) { if (index < c && day == compulsory_days[index]) { last_day = day; index++; } else if (day - last_day == k) { prcl++; last_day = day; } } cout << prcl << endl; return 0; } ``` ### 代码解释 1. **输入读取**:首先读取总天数`n`和间隔天数`k`,接着读取强制打卡日的个数`c`,再读取`c`个强制打卡日的日期并存储在`compulsory_days`向量中。 2. **打卡情况处理**:使用`last_day`记录上一次打卡的日期,初始为 0(第 0 天已打卡),`index`用于遍历强制打卡日列表。从第 1 天开始遍历到第`n`天,如果当天是强制打卡日,更新`last_day`并将`index`加 1;如果距离上一次打卡已经达到`k`天,额外打卡一次,更新`last_day`。 3. **输出结果**:最后输出最少额外打卡次数`prcl`。 ######[AI问答 | 425点数解答 | 2026-07-11 20:58:00]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)516
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)437
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)572
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)443
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)151
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)130
- 解决代码WA问题:修改整数溢出问题后的计算代码(字节豆包 | 749点数解答 | 2026-05-10 16:20:03)62
- 修正代码解决计算 f(l, r) 和出现的 WA 问题(字节豆包 | 806点数解答 | 2026-05-10 16:21:37)59
- 浙闽“板凳龙”舞龙队 300 秒螺线盘入:位置与速度全揭秘(阿里通义 | 886点数解答 | 2024-09-07 10:31:31)693
- 浙闽“板凳龙”舞龙队 300 秒位置与速度数学模型揭秘(GPT | 565点数解答 | 2024-09-07 10:32:56)584
- 223节板凳龙沿等距螺线盘入:300秒内位置与速度的数学揭秘 (讯飞星火 | 443点数解答 | 2024-09-07 10:34:10)428
- 浙闽“板凳龙”300秒舞龙轨迹与速度:数学模型揭秘!(字节豆包 | 522点数解答 | 2024-09-07 10:35:06)394