问题描述
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天 做 aa 道题目, 周六和周日每天做 bb 道题目。请你帮小明计算, 按照计划他将在 第几天实现做题数大于等于 nn 题?
输入格式
输入一行包含三个整数 a, b, 和 n.
输出格式
输出一个整数代表天数。
本题需要解决的问题:
1.获取到的数字(刷题总数)有可能太大,所以需要用long类型来接收
2.采用while死循环的方式,不断地重复for循环遍历每个星期
3.while死循环需要停止,所以先定义一个boolean类型的变量接收true,当得到结果,改为false
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//将键盘录入的每一行数据获取出来
long a = scan.nextLong();
long b = scan.nextLong();
long n = scan.nextLong();
//定义一个数组,将一周之中每天做题的多少记录其中
long[] weekArr = {a,a,a,a,a,b,b};
//定义一个数,记录一共做了多少题
long count = 0L;
//定义一个数,记录已经过去了多少周
int week = 0;
//定义一个boolean类型的变量,用来结束循环
boolean isT = true;
//当isT为false结束循环
while(isT){
for(int i=0; i<weekArr.length; ){
count+=weekArr[i];
if(count>=n){
// 计算天数,i从零开始,所以加一
System.out.println((week*7)+(i+1));
//此时得出结果,结束循环
isT = false;
break;
}
i++;
}
//当for循环执行一圈,证明过了一个星期
week++;
}
}
}