hdu 1290 切糕

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1290

思路:

n条直线最多能将一个平面分成几个区域
其递推公式即为:f(n)=f(n-1)+n;
递推一下,就得到f(n)=1/2*(n*n+n)+1;

n个平面最多能将一个空间分成几个区域
递推公式即为:g(n)=g(n-1)+f(n-1);
递推一下,就得到通项公式:g(n)=(n*n*n+5*n+6)/6;

 1 #include <cstdio>  
 2 #include <cstring>  
 3 #include <cmath>  
 4 #include <cstdlib>  
 5 #include <ctime>  
 6 #include <iostream>  
 7 #include <algorithm>  
 8 #include <vector>  
 9 #include <queue>  
10 #include <map>  
11 #include <set>  
12 #include <string>  
13 
14 using namespace std;
15 
16 int main()
17 {
18     __int64 n;
19     while(scanf("%I64d",&n)!=EOF)
20     {
21         printf("%I64d\n",(n*n*n+5*n+6)/6);
22     }
23     return 0;
24 } 

 

posted @ 2015-10-28 11:34  pter  阅读(124)  评论(0编辑  收藏  举报