2021-10-26 小猴摘桃

【问题描述】

小猴到桃林按以下模式摘桃子:第一天,摘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;
}

Guess you like

Origin blog.csdn.net/m0_58489132/article/details/120971037