测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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

填空题 容易

题目描述

金币

国王将金币作为工资, 发放给忠诚的骑士。 第一天, 骑士收到一枚金币; 之后两天(第二天和第三天)里, 每天收到两枚金币; 之后三天(第四、 五、 六天) 里, 每天收到三枚金币; 之后四天(第七、 八、九、 十天) 里, 每天收到四枚金币……这种工资发放模式会一直这样延续下去: 当连续 N 天每天收到N 枚金币后, 骑士会在之后的连续 N+1 天里, 每天收到 N+1 枚金币(N 为任意正整数) 。你需要编写一个程序, 确定从第一天开始的给定天数内, 骑士一共获得了多少金币。

输入

一个整数(范围 1 到 1 0000) , 表示天数。

输出

骑士获得的金币数。

样例输入

6

样例输出

14

参考答案

#include <iostream> #include <cstdio> using namespace std; int main() { int i,j,sum=0,sumd=0,n,ans; scanf("%d",&n); for (i=1;;i++) { sum+=i; if (sum>=n) break; } i--; for (j=1;j<=i;j++) sumd+=j*j; ans=(1+i)*(n-(sum-i-1))+sumd; printf("%d\n",ans); return 0; }
上一题 下一题