【问题描述】
小猴到桃林按以下模式摘桃子:第一天,摘1个桃子;之后两天(第二天和第三天),每天摘2个桃子;之后三天(第四、五、六天),每天摘3个桃子;之后四天(第七、八、九、十天),每天摘4个桃子……;当连续N天每天摘N个桃子后,猴子会在之后的连续N+1天里,每天摘N+1个桃子。
请计算在前K天里,猴子一共摘了多少桃子。
说明/提示
1、输入输出样例 1 说明
小猴第一天摘1个桃子;第二天和第三天,每天摘2个桃子;第四、五、六天,每天摘3个桃子。因此一共摘了 1+2+2+3+3+3=14 个桃子。
2、对于 100%的数据,1 ≤ K ≤ 10,000,000(不考虑猴子寿命)。
【输入形式】
一个正整数K,表示小猴摘桃子的天数。
【输出形式】
一个正整数,即小猴摘到的桃子数。
【样例输入1】
6
【样例输出1】
14
【样例输入2】
1000
【样例输出2】
29820
#include<stdio.h>
int main()
{
long sum=0;
int date=0;
int number; //总天数
scanf("%d",&number);
for(int i=0; i<=number;)
{
date++;
sum = sum + date*date;
i=i+date; //已算的天数
if(i>number)
{
int t=number-i+date;
sum = sum-date*date+date*t;
break;
}
}//for
printf("%ld",sum);
return 0;
}