题解 | #[NOIP2015]金币#
[NOIP2015]金币
https://www.nowcoder.com/practice/8f71f5670e6a45118d24d13868a2da9e
public class Program { public static void Main() { //coin 金币 round 轮数 end 终止条件 int coin = 0, round = 1, end = 1; //发放金币的天数 int inPut = int.Parse(System.Console.ReadLine()); //从第一天一直循环到发放金币结束的那天 for (int i = 1; i <= inPut; i++) { //累计金币,第一轮加1次金币 第二轮加两次金币 第三轮加三次金币 加的金币数与轮数相等 coin += round; //终止条件 如果当前天数等于终止条件,轮数增加 if (i == end) { round++; //终止条件可以推算出来 假设inPut=6 第一次终止是i=1的时候 第二次终止是i=3的时候 第三次终止是i=6的时候 end += round; } } System.Console.WriteLine(coin); } }