方法一
#include <iostream>
using namespace std;
int main()
{
long long a, b, n, ans = 0;
//a表示周1-5每天练习题目数量
//b表示周六日每天练习题目数量
// n表示总共要练习的题目
//ans表示练习题目总数
long long i = 0;//天数
cin >> a >> b >> n;
while (ans <= n)
{
i++;//当做的题目数量少于要做的题目时,天数加1
if (i % 7 <= 5 && i % 7 >= 1)//天数在周1-5时
{
ans += a;//做题数+a
}
else
{
ans += b;
}
}//当达到要求时,跳出循环
cout << i;//输出天数
return 0;
}
方法二:
#include<stdio.h>
int main() {
long a, b, n;
//1-5 做 a 个题 ,六日做 b 个题 ,要做完 n 个题
scanf("%ld %ld %ld", &a, &b, &n);
// 从周一开始
// 设做了 y 天
for (long y = 0; ; y++) {
if (y % 7 <= 5) {
//超过七天的部分在1-5,整周做的题+超出部分做的题
if (((5 * a + 2 * b) * (y / 7) + (y % 7) * a) >= n) {
printf("%ld", y);
break;
}
}
if (y % 7 > 5) {
//超过七天的部分>5,整周做的题+周1-5做的题+(超出部分-5)做的题
if ((5 * a + 2 * b) * (y / 7) + (y % 7) * a + (y % 7 - 5) * b >= n) {
printf("%ld", y);
break;
}
}
}
return 0;
}
两种方法均正确