题解 | #[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);
}
}

查看7道真题和解析