adnss

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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

你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。

输入
一个整数(范围1到10000),表示天数。
输出
骑士获得的金币数。
样例输入
6
样例输出
14
题意
第一天为 1 * 该段时间天数
之后两天 2 * 该段时间天数
在之后三天 3* 该段时间天数
每段时间获得的金币就是 该段时间天数*该段时间天数
最后算出n天一共得了多少金币。
思路
用for计算每天的金币数量,天数加一,金币也加一,如果天数和金币一样,每天金币再多加一个;
代码实现:

include<bits/stdc++.h>

using namespace std;
int main(){
int N,c=1,b=0;
cin>>N;
for(int i=1;i<=N;i+=c){//计算每天的金币数量
b=b+cc;
c=c+1;
if(N-i<c){
b+=(N-i)
c;
}
}
cout<<b;
return 0;
}

posted on 2022-12-24 20:37  生吃椒盐小孩  阅读(46)  评论(0编辑  收藏  举报