学习
国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币…;这种工资发放模式会一直这样延续下去:当连续 N 天每天收到 N枚金币后,骑士会在之后的连续 N+1 天里,每天收到 N+1 枚金币。(蓝桥云课)
请计算在前 K 天里,骑士一共获得了多少金币。
输入描述
输入只有 1 行,包含一个正整数 K(1≤K≤10),表示发放金币的天数。
输出描述
输出只有 1 行,包含一个正整数,即骑士收到的金币数。
这个题不用想的过于复杂,直接单刀直入,计算每一个时间段金币数,不断地改变时间段,找到对应的时间,计算直到当前的金币数
以下为代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int k=scan.nextInt();
int count =0,day=1;
while(k>0){
if(k>=day){
count=count+day*day;
k=k-day;
}else{
count=count+k*day;
k=0;
}
day++;
}
System.out.println(count);
}
}