刷题统计
题目描述
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n 题?
输入格式
输入一行包含三个整数 a, b 和 n.
输出格式
输出一个整数代表天数。
样例输入
10 20 99
样例输出
8
思路:模拟题,若一天一天的加会超时。所以可以先计算有几个星期,然后余下的肯定少于一个星期,然后再一天一天的加就不会超时了。
超时代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
new Main().solve();
}
void solve() {
Scanner sc = new Scanner(System.in);
long a = sc.nextLong();
long b =sc.nextLong();
long n = sc.nextLong();
long i=0;
long sum=0;
while(sum<n){
i++;
if(i%7<=5&&i%7>=1){
sum+=a;
}else{
sum+=b;
}
//System.out.println(i+" "+sum+" ");
}
System.out.println(i);
sc.close();
}
}
AC代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
new Main().solve();
}
void solve() {
Scanner sc = new Scanner(System.in);
long a = sc.nextLong();
long b =sc.nextLong();
long n = sc.nextLong();
long i=0;
long sum=0;
long res = n/(a*5+b*2)*7;
long temp = n%(a*5+b*2);
while(sum<temp){
i++;
if(i%7>=1&&i%7<=5){
sum+=a;
}else{
sum+=b;
}
}
System.out.print(res+i);
sc.close();
}
}