发放金币(循环)

分享一下个人思路:如果拿1金币,可以拿1天。2金币拿两天,n金币拿n天

也就是说:我们要拿n金币,从当前的天数开始循环n次,每次拿n,每次拿完之后天数+1;

#include <stdio.h>
int main()
{
    int day=0;int money=0;int k=1;//每次拿的金币数量
    scanf("%d",&day);
    for(int i=1;i<=day;)//这里不设置天数的加减,而在拿金币的时候进行天数加减
    {
        for(int j=0;j<k;j++)//拿n次金币,每次拿n枚
        {
            if (i == day)
			{
				money += k;
				i++;
				break;
			}
            money+=k;//每次拿的
            i++;//拿完一次后天数+1
        }
        k++;//拿完n次后,金币+1
    }
    printf("%d",money);
    return 0;
}

大家注意到我们有这样一个条件

         if (i == day)
            {
                money += k;
                i++;
                break;
            }

也就是说此时天数已经到了,但是我们之前的循环是n枚金币拿n次,循环还没有结束,我们就要手动去结束他(不要忘了最后一天也是有金币的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值