题解 P2669 【金币】
算出总体思路:先用一个变量来代替相同金币的天数,这样就可以避免每次用金币加来减去最后都不知到是什么的情况。然后一个简单的for循环计算每天加上的金币数量就可以轻松终结代码~~~
#include<iostream>
using namespace std;
int main(){
int d,coin=0,j=1; //定义天数d,金币数coin(记得初始化为0),j要等于下面for循环中的i
cin>>d; //输入,
for(int i=1;d>0;){ //循环
if(j>0) d--;
coin+=i; //每次将总金币数量加上每天的金币
j--; //将与i相等的j每次-1
if(j>0&&d>0) continue; //如果发一种金额的金币的天数和总天数仍不为0,跳过下面的代码,再次进入循环
i++; //如不满足上面条件,将金币数加一
j=i; //因为j要与i在每一次循环中保持相等关系,所以在continue条件不成立时要记得将j与i制成一样的
}
cout<<coin<<endl;
return 0; //日常AC
}
I hope my answer can help you ^_^