题目以及要求:
题目描述
XY考试前一天还没开始复习,TL问他怎么还不开始复习?
XY说我越到后面越猛!
这是为什么呢?原来XY从第一天开始复习1页复习1天后,第2天开始复习2页但是持续复习2天,复习2天后又持续复习3天每天天复习4页,复习3天后又持续复习4天每天复习7页…
太猛了,但是XY不知道自己最后一天到底能一共复习多少页,帅帅的你帮帮他呗?
输入格式
一个正整数,表示考试的前天。
输出格式
输出考试最后一天一共能复习多少页。
样例:
代码:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class 无情的XY {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
List<Integer> list = new ArrayList<Integer>();
int day=sc.nextInt();
int i=1;
list.add(1);
int sumday=1;
long sumfile=1;//int可能越界
while (true) {
//总的天数大于输入的天数
if(sumday>=day){
//减去多算的天数
sumfile-=(sumday-day)*list.get(i-1);
break;
}else
//根据关系存储数据
list.add((i+list.get(i-1)));
i++;
sumfile+=(i*list.get(i-1));
sumday+=i;
}
System.out.println(sumfile);
}
}