金币问题
国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续 n
天每天收到 n枚金币后,骑士会在之后的连续 n+1 天里,每天收到 n+1 枚金币。
请计算在前 k天里,骑士一共获得了多少金币?
输入发放金币的天数,返回骑士获得的金币枚数。
public class Ph12 {
public static void main(String[] args) {
int n;
int a = 1, b = 1, coin = 0;
Scanner scan = new Scanner(System.in);
n = scan.nextInt();
for (int i = 0; i < n; i++) {
coin += a;
b--;
if (b == 0) {
a++;
b = a;
}
}
System.out.println(coin);
}
}
输出结果:
100
945