題目描述
國王將金幣作爲工資,發放給忠誠的騎士。第 1天,騎士收到一枚金幣;之後兩天(第 2 天和第 3 天)裏,每天收到兩枚金幣;之後三天(第 4、5、6 天)裏,每天收到三枚金幣;之後四天(第 7、8、9、10 天)裏,每天收到四枚金幣……這種工資發放模式會一直這樣延續下去:當連續 n 天每天收到 n枚金幣後,騎士會在之後的連續 n+1 天裏,每天收到 n+1枚金幣(n爲任意正整數)。
你需要編寫一個程序,確定從第一天開始的給定天數內,騎士一共獲得了多少金幣。
輸入描述
一個整數 n(n∈[1,10000]),表示天數。
輸出描述
騎士獲得的金幣數。
樣例輸入 1
6
樣例輸出 1
14
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner read = new Scanner(System.in);
int k = read.nextInt();
long sum=0;
int day=0;
int i=1;
while(day<k)
{
if(day+i>k)
{
int j=k-day;
sum+=j*i;
day+=i;
}
else
{
sum+=i*i;
day+=i;
i++;
}
}
System.out.println(sum);
}
}