金币,两种算法(信息学奥赛一本通-T1100)

来源这里
金币,两种算法(信息学奥赛一本通-T1100)_第1张图片

#include 
using namespace std;
int main()
{
    int day;
    int date=1,sum=0;
    int i,j=1;
 
    cin>>day;
    for(i=1; i<=day; i++)
    {
        sum+=date;//累加金币数
        if(i==j)//目前天数
        {
            date++;
            j+=date;
        }
    }
    cout<<sum<<endl;
 
    return 0;
}
————————————————
版权声明:本文为CSDN博主「Alex_McAvoy」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011815404/article/details/79329627

还有一种想法,很有参考价值第二种算法
骑士收的金币数写成以下形式,更容易想到解题方法
以前10天(包括第10天)收到的金币数为例,则收到的金币数为:
1 (第一天)
2 2 (第二、三天)
3 3 3 (第四、五、六天)
4 4 4 4 (第七、八、九、十天)
把打印出的数一加就行了

你可能感兴趣的:(奥赛一本通题解)