题目描述

* 国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;依次类推。。当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。输入样例:输入 6    输出   14                                    输入  1000     输出   29820骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。因此一共收到1+2+2+3+3=14枚金币。

C++代码实现

  • 计算每天工资,再累计
    #include <iostream>using namespace std;

int main()
{
int data; //几天
cin >> data;
int tmp = 1; //每天的工资
int sum = 0; //总工资
for (int i = 0, j = 0; i < data; i++)
{
sum += tmp;
j++;
if (j >= tmp){ //涨工资
tmp++;
j = 0;
}
}
cout << sum << endl;

system("pause");return 0;

}

* 转换思路:假设连续N天的 N个金币  全部发给骑士,当计算的日期超过实际日期时,减去未发的金币。代码实现如下:

#include <iostream>
using namespace std;

int main()
{
int data; //实际几天
cin >> data;
int tmp = 1; //每天的工资
int sum = 0; //总工资

int t = 0;while (t < data)    //t>=data停止{       sum += tmp*tmp; //假设全发给骑士    t += tmp;       //天数    tmp++;      }//注意此时每天的工资是 tmp-1sum -= (t - data)*(tmp-1);      //实际应发的工资cout << sum << endl;system("pause");return 0;

}

©著作权归作者所有:来自51CTO博客作者一研为定的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. TCPIP卷一(8):EIGRP的组建和邻居状态机
  2. webrtc 服务器 janus android使用教程1:Echo Test
  3. Android学习笔记(五) Acticity跳转并传值
  4. Android简易老虎机(转动式)
  5. Netty UDP Server&Client
  6. android TCP 两个手机局域网通信(wifi)
  7. Android锁屏状态下点亮屏幕并弹窗提醒
  8. 收到短信了,我该做点什么?
  9. Android(安卓)Socket 发送与接收数据问题: 发送后的数据接收到总

随机推荐

  1. golang ide有哪些
  2. golang读取文本乱码解决方法
  3. golang http怎么使用
  4. erlang和golang的区别
  5. go语言网络编程、http处理流程详情
  6. golang gopath如何设置
  7. docker为什么用golang开发
  8. Go安装各种第三方库、包的命令
  9. golang gin可以做什么
  10. go语言函数介绍