刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

金币

国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)。

你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。
时间限制:10000
内存限制:65536
输入
一个整数(范围1到10000),表示天数。
输出
骑士获得的金币数。
样例输入

6

样例输出

14

使用微信搜索喵呜刷题,轻松应对考试!

答案:

include<bits/stdc++.h>

using namespace std;

int k,i,j,t,ans;

int main()

{

cin>>k;

for(i=1;i<=10000;i++)

for(j=1;j<=i;j++)

{

t++;

ans+=i;

if(t==k)

cout<<ans;

}

}

解析:

【喵呜刷题小喵解析】:该程序首先读取输入的天数n,然后使用一个循环来模拟骑士收到金币的过程。循环的终止条件是n变为0。在每次循环中,骑士会收到i枚金币,并将这些金币累加到sum变量中。同时,days变量用于记录已经过去的天数。当days等于当前的循环次数i时,表示已经连续i天每天收到i枚金币,因此将n减1。最后,输出骑士收到的总金币数sum。该算法的时间复杂度为O(n),其中n为输入的天数。在每次循环中,我们只需要进行一次加法运算和一次比较运算,因此算法的效率较高。同时,由于使用了变量sum来累加金币数,因此空间复杂度为O(1)。
创作类型:
原创

本文链接:金币 国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share