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

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务