本文为博主原创文章,未经博主允许不得转载。
题目描述
小智是一名刚满十岁的男孩,住在真新镇中,他目标是成为一名优秀的宝可梦训练师,他明天就要从大木博士那里获得自己的第一只宝可梦了。博士在电视里建议初学者从妙蛙种子,小火龙和杰尼龟这三种宝可梦里选一只开始训练。小智非常期待明天的到来,他在床上念着三种宝可梦的特性,渐渐进入了梦境...
在梦中,小智已经踏上了宝可梦训练师修行之旅,大木博士对他说:"你修行的内容如下:
- 第一天我将给你一只宝可梦。
- 从第二天起,你每天必须抓到的宝可梦数量都是在你前一天抓到的宝可梦数量上增加一只。(第一天博士给小智的宝可梦也当作是抓到的)
- 当某一天你抓到的宝可梦数量达到 N 时,从下一天起,你必须抓到的宝可梦数量变成了你前一天抓到的宝可梦数量上减少一只
- 当最后你必须抓的宝可梦数量只剩 0 只的时候,你便已经完成了此次修行,成为了宝可梦训练师!
小智醒来后,想起昨天晚上的梦觉得非常开心,但是他想知道成为宝可梦训练师的时候他总共抓到多少只宝可梦(包含博士給的),掐着手指算了好久也算不清楚,抬头看到闹钟,啊…已经睡过头了,说不定连一只宝可梦都拿不到!他顾不上换衣服,直奔大木博士的那里去了…..
假设小智能顺利的完成修行,也就是每天抓到的宝可梦数量都符合修行内容,现在给你修行内容中的 NNN,请你算出他最后总共拥有的宝可梦数量。
输入描述
输入一个整数 N(2≤N≤10^9)。
输出描述
输出小智最后总共拥有的宝可梦数量。
样例输入 1
2
样例输出 1
4
#include<stdio.h>
int main()
{
long long int i=0,n,sum=0;
scanf("%lld",&n);
for(i=0;;i++)
{
sum+=i;
if(i==n)
{
sum=(sum-i)*2+i;
break;
}
}
printf("%lld",sum);
return 0;
}
注意数据范围。