- 问题描述
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天 做 aa 道题目, 周六和周日每天做 bb 道题目。请你帮小明计算, 按照计划他将在 第几天实现做题数大于等于 nn 题?
输入格式
输入一行包含三个整数 a,b 和 n.
评测用例规模与约定
对于 50 %的评测用例1≤a,b,n≤10的6次方
对于 100 \%100% 的评测用例, 1≤a,b,n≤10的18次方
最大运行时间:1s
最大运行内存: 256M
来源 :蓝桥云课
//本题注意一下,由于n的数据范围很大,直接写while循环会超时,所以得先计算一下需要几周。
//然后再注意一下剩余几天就可以了。
代码如下:
#include<iostream>
#include<algorithm>
#include<math.h>
typedef long long ll; //作用就是可以用ll定义数据类型,没有其他作用
using namespace std;
ll week,i,a,b,m,n,day,count,last;
int main()
{
cin>>a>>b>>n; //分别输入a,b,n
week=n/(5*a+2*b); //首先计算出有多少个整周
last=n%(5*a+2*b); //计算余数(不足一周) last<7
day=week*7; //计算整周一共有多少天
int x=1; //相当于星期几
while(last>0)
{
if(x%7==6)last-=b; //如果结果为6,则执行需要减去b
else last-=a; //其余则是减去a
day++; //循环一次,天数增加一天
x++;
}
cout<<day<<endl; //输出结果
return 0;
}
样例及结果
10 20 99
8
--------------------------------
Process exited after 5.002 seconds with return value 0
请按任意键继续. . .