
## 冯诺依曼邻居问题（通项公式）

### 代码

[冯诺依曼邻居问题（通项公式）代码](Neumann2_3_12.cpp)

### 问题说明

某算法从一个1×1的方格开始，每次都会在上次图形的周围再加上一圈方格，在第n次的时候要生成多少个方格？下图给出了n = 0，1，2是的结果。

![](https://huihut-img.oss-cn-shenzhen.aliyuncs.com/NeumannNeighborProblem.jpg)

### 功能说明

本程序使用通项公式求解。

### 代码简述

若设第n次生成的方格数是a(n)，则：

a(1) = a(0) + 4 * 1
a(2) = a(1) + 4 * 2
a(3) = a(2) + 4 * 3
...
a(n) = a(n-1) + 4 * n

化简可得：

a(n) - a(1) = 4 * (n + (n-1) + ... + 2 )

即：

a(n) = 2 * n*n + 2 * n + 1  

则可得出a(n)的通项公式，即可用通项公式直接求解。

在程序中用Neumann2_3_12函数返回a(n)的值。