题目描述
我的代码
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
int main() {
ll n;
ll a;
ll b;
cin >> a >> b >> n;
ll w = n / (a * 5 + b * 2);
ll ans = w * 7;
n = n - w * (a * 5 + b * 2);
int flag = 0;
for (int i = 0; i < 6 && flag == 0; i++)
{
if (a * i >= n) {
cout << ans;
flag = 1;
}
ans++;
}
n = n - 5 * a;
for (int j = 1; j < 3 && flag == 0; j++) {
if (b * j >= n) {
cout << ans;
flag = 1;
}
ans++;
}
return 0;
}
原本无法通过测试点。发现代码有自增逻辑漏洞,6天能完成的任务会变成7天。
这种简单日期问题不要把两个循环弄得太绕,重点关注一个循环结束时变量自增到哪里了,防止额外多一次自增或少一次自增。