4402. 刷题统计
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。
他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目。
请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n 题?
输入格式
输入一行包含三个整数 a,b和 n。
输出格式
输出一个整数代表天数。
数据范围
对于 50%50% 的评测用例,1≤a,b,n≤10的六次方,
对于 100%100% 的评测用例,1≤a,b,n≤10的十八次方。
输入样例:
10 20 99
输出样例:
8
注意要点:
1,最大数据样例为10的十八次方,int的存储数据范围只有 -2147483648~2147483647
所以涉及到的相关数据要用long long,它输入用%lld
2,同样因数据过大,不能用for循环一周一周的算,要直接计算到倒数第二周,再用for循环搞定最后一周多出来的几天数据
3,注意临界值
完整代码如下:
#include<stdio.h>
int main()
{
int i=0,j=0;
long long a,b,n,sum=0,js=0;//数据过大,不能使用int,改用long long
scanf("%lld%lld%lld",&a,&b,&n);
js=(n/(5*a+2*b))*7;//最后一周
sum=(js/7)*(5*a+2*b);
if(n%(5*a+2*b)!=0)
{ for(j=0;j<7;j++)//7天
{
if(j>=0&&j<5)
{
sum=sum+a;
js++;
if(sum>=n)
break;
}
if(j>=5&&j<7)
{
sum=sum+b;
js++;
if(sum>=n)
break;
}
}
}
printf("%lld",js);
return 0;
}