代码是在新校区机房写的,关键是找出递归公式!
/*
Count the Regions
--------------------------------------------------------------------------------
Time limit: 1 Seconds Memory limit: 32768K
Total Submit: 318 Accepted Submit: 207
--------------------------------------------------------------------------------
What's the maximum number of regions definable by N zig-zag lines, each of which consists of two parallel infinite half-lines joined by a straight line segment?
Here is an example of 2 zig-zag lines yield 12 regions at the most.
Input
The input consists of a sequence of N (<= 10000), which is the number of the zig-zag lines, one per line.
Output
For each N, you should output the number of the maximum regions.
Sample Input
1
2
Sample Output
2
12
*/
#include "stdio.h"
#include "vector"
using namespace std;
int main()
{
int n,i,j;
vector<int> p;
scanf("%d",&n);
if(n<0||n>10000)
return 0;
p.push_back(2);
for(i=1;i<n;i++){
j=p.back()+9*i+1;
p.pop_back();
p.push_back(j);
}
j=p.back();
printf("%d/n",j);
return 0;
}