洛谷P8780[蓝桥杯 2022 省 B] 刷题统计

题目描述

小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n 题?

输入格式

输入一行包含三个整数 a, b 和 n.

输出格式

输出一个整数代表天数。

输入输出样例

输入:

10 20 99

输出:

思路

        为了不超时能顺利通过,我们可以把总的题数除以一个星期的刷题数,还剩下的题目用一个for循环即可计算出还需要的天数。

代码:

#include
using namespace std;

int main() {
    long long a, b, n, s;
    cin >> a >> b >> n;
    s = 5 * a + 2 * b;    //一个星期刷题总量
 
    long long week = n / s * 7;  //计算出至少需要多少个星期天数
    n = n % s;                 //还剩下的题目数
    long long d[] = { a,a,a,a,a,b,b };  //每天的刷题数

    for (int i = 0; n > 0; i++) {
        n -= d[i];      //上方计算出了至少需要的星期数,这里便从星期一开始计算
        week++;        //需要一天便加上一天,直到题目刷完
    }

    cout << week << endl;
    return 0;
}

 

你可能感兴趣的:(蓝桥杯)