P8780 [蓝桥杯 2022 省 B] 刷题统计
ice_fish01 · · 题解
A. 前言
本蒟蒻的第一篇题解。
B. 题意分析
本题可采用暴力法枚举法。
原题再现:
小明计划周一至周五每天做
小明每天会刷多少题,我们已经知道了,那我们就可以枚举从“下个星期一”到他完成 flag 那天他刷的题数,将这个数量加入一个变量(代码中叫
C. \textcolor{green}{AC} \textcolor{green}{Coding}
读入数据的语句轻轻松松写出来——
long long a,b,n,sum = 0,cnt;
ios::sync_with_stdio(false); //快读,用了以后就不能用scanf和printf了
cin >> a >> b >> n;
请注意,对于
接下来就是枚举。
for(cnt = 1;sum <= n;cnt++) //枚举每一天
{
if(cnt % 7 <= 5 && cnt % 7 >= 1) //如果是周一到周五
sum += a; //刷a道题
else //周六周日
sum += b; //刷b道题
}
最后输出莫忘记!
cout << cnt;
可能有人会问,为什么要把计数变量的值输出前要
for (循环变量初始值; 循环条件; 循环结束操作)
{
循环体执行语句;
}
如果符合循环条件,则进入循环。对于每次循环,运行循环体, 然后进行每轮循环结束的操作。
意思是说:
(
(
(
(
(
所以,我们的
D. 完整程序(我知道有些人只看这里)
//P8780 [蓝桥杯 2022 省 B] 刷题统计
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long a,b,n,sum = 0,cnt;
ios::sync_with_stdio(false); //快读,用了以后就不能用scanf和printf了
cin >> a >> b >> n;
for(cnt = 1;sum <= n;cnt++)
{
if(cnt%7<=5&&cnt%7>=1)
sum += a;
else
sum += b;
}
cnt--;
cout << cnt;
return 0;
}