一、题目
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n 题?
【输入格式】
输入一行包含三个整数 a, b 和 n.
【输出格式】
输出一个整数代表天数。
【样例输入】
10 20 99
【样例输出】
8
【评测用例规模与约定】
对于 50% 的评测用例,1 ≤ a, b, n ≤ 10^6.
对于 100% 的评测用例,1 ≤ a, b, n ≤ 10^18.
二、问题分析与代码
#include<iostream>
using namespace std;
typedef long long ll;
int main() {
ll a, b, n, ans, temp;
cin >> a >> b >> n;
ans = 0;
temp = 5 * a + 2 * b; //一周的刷题量
ans = ans + ((n / temp) * 7); //刷题完整周数
if (n % temp > 5 * a) { //刷完题在周六日
ans += 5; //加上前面5天(周一至周五)
ans += ((n % temp) - 5 * a) / b; //需一整天刷题的天数
if (((n % temp) - 5 * a) % b) //有题目还没刷,且一天内能刷完,则加1
ans++;
}
else { //刷完题在周一至周五
ans += (n % temp) / a;//需一整天刷题的天数
if ((n % temp) % a) //有题目还没刷,且一天内能刷完,则加1
ans++;
}
cout << ans << endl;
return 0;
}