圆分割平面问题
题目描述:确定平面一般位置上的n个互相交叠的圆所形成的区域数。互相交叠是指每两个圆相交在不同的两个点上。不相交或相切的圆是不允许的。一般位置是指不存在有一个公共点的三个圆。
输入格式
第1行:1个整数n(1<=n<=100)
输出格式
第1行:1个整数,表示圆所分割的最大的区域数
样例输入
4
样例输出
14
这道题虽说是个递推
不过感觉递推时间似乎太长了
于是我就想了个时间短的方法
那就是可以去寻找通项公式
这里呢我找出来发现通项公式是n*n-n+2
那既然都找通项公式那后面也就没啥好说的了
下面直接上代码
#include<iostream>
using namespace std;
int main(){
int a,b;
cin>>a;//输入
b=a*a-a+2;//通项公式
cout<<b;//输出
return 0;
}