池州网站制作公司,企业管理咨询服务合同范本,wordpress微网站模板,网页qq邮箱登录入口题目描述
国王将金币作为工资#xff0c;发放给忠诚的骑士。第一天#xff0c;骑士收到一枚金币#xff1b;之后两天#xff08;第二天和第三天#xff09;#xff0c;每天收到两枚金币#xff1b;之后三天#xff08;第四、五、六天#xff09;#xff0c;每天收到…题目描述
国王将金币作为工资发放给忠诚的骑士。第一天骑士收到一枚金币之后两天第二天和第三天每天收到两枚金币之后三天第四、五、六天每天收到三枚金币之后四天第七、八、九、十天每天收到四枚金币......这种工资发放模式会一直这样延续下去当连续 NN 天每天收到 NN 枚金币后骑士会在之后的连续 N1 天里每天收到 N1 枚金币。
请计算在前 K 天里骑士一共获得了多少金币。
输入描述
输入只有 1 行包含一个正整数 K 1≤K≤104表示发放金币的天数。
输出描述
输出只有 1 行包含一个正整数即骑士收到的金币数。
输入输出样例
示例 1 输入 6输出 14示例 2 输入 1000输出 29820运行限制 最大运行时间1s 最大运行内存: 256M
分析双层循环
将给予相同硬币数的视为同一类然后在每个相同硬币数类中包含的天数中进行处理。
代码
#include stdio.h
#include stdlib.hint main(int argc, char *argv[]) {int K,N 0;//N为叠加的天数int count 0;scanf(%d,K);for(int i 1; i10001; i) {//将给予相同硬币数的视为同一类 for(int j 0; ji; j) {//表示每个相同硬币类中包含多少天 N;if(N K)goto pri;counti;}}
pri:printf(%d,count);return 0;
}