或许你曾经牢骚满腹
或许你依然心怀忧伤
或许你近在咫尺
或许你我天各一方
对于每一个学子
母校
永远航行在
生命的海洋
今年是我们杭电建校五十周年,这是一个值得祝福的日子。我们该送给母校一个怎样的礼物呢?对于目前的大家来说,最好的礼物当然是省赛中的好成绩,我不能参赛,就送给学校一个DOOM III球形大蛋糕吧,这可是名牌,估计要花掉我半年的银子呢。
想象着正式校庆那一天,校长亲自操刀,把这个大蛋糕分给各地赶来祝贺的校友们,大家一定很高兴,呵呵,流口水了吧…
等一等,吃蛋糕之前先考大家一个问题:如果校长大人在蛋糕上切了N刀(校长刀法极好,每一刀都是一个绝对的平面),最多可以把这个球形蛋糕切成几块呢?
做不出这个题目,没有蛋糕吃的!
为-了-母-校-,为-了-蛋-糕-(不是为了DGMM,枫之羽最会浮想联翩…),加-油-!
Input
输入数据包含多个测试实例,每个实例占一行,每行包含一个整数n(1<=n<=1000),表示切的刀数。
Output
对于每组输入数据,请输出对应的蛋糕块数,每个测试实例输出一行。
Sample
Input
1
2
3
Output
2
4
8
这道题代码很短,但是想明白挺难的
直线分割平面的递推公式 a[i]=i+a[i-1]
当有(n-1)条直线时,最多把平面分割成a[n-1]个平面,第n条直线与之前的直线相交n-1个点,就多出了n个平面
同理,当有(n-1)个平面时,最多把空间分割成b[n-1]个空间,第n个平面与之前的平面相交n-1条线,它们把第n个平面又分出了a[n-1]个区域,就又多出了a[n-1]个空间。
平面分割空间的递推公式 b[i]=a[i-1]+b[i-1];
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<string>
#include<set>
#include<map>
#include<cstring>
#include<cmath>
using namespace std;
const int N=1e6+15;
long long a[N],b[N];
//long long st[N];
int main()
{
int i,k,t,m,n;
a[0]=1;
a[1]=2;
a[2]=4;
b[1]=2;
b[2]=4;
for(i=3;i<=1001;i++)
{
a[i]=i+a[i-1];
b[i]=a[i-1]+b[i-1];
}
while(cin>>n)
{
cout<<b[n]<<endl;
}
return 0;
}