题干:
平面上有n个圆,求使这n个圆两两相交(即每两个圆之间恰好有两个交点)后最多能把平面划分成多少个区域。
输入描述:
一个正整数t,表示有t(1≤t≤100)组数据。
接下来t行,每行一个整数n(0≤n≤1000),代表平面内圆的个数。
输出描述:
输出共t行。每行一个正整数,表示对应的n个圆将该平面划分成的最大的区域数。
示例1
输入
复制
3
1
2
3
输出
复制
2
4
8
说明
第一个样例,平面只有一个圆,此时将平面划分成圆内和圆外两个区域;
第二个样例,平面上有两个圆,两圆相交可以将平面划分成四个区域(见下图)。
解题报告:
结论题。ans=n^2 - n + 2;(我再也不直接在编辑框里面写代码了,,以后一定在本地写、、一直wa在没写else,,导致一直以为是结论推错了、、难受,,你说你这么菜,,学什么qls)
AC代码:
#include<bits/stdc++.h>
using namespace std;int main()
{int t;cin>>t;while(t--) {int n;scanf("%d",&n);if(n == 0) puts("1");else printf("%d\n",n*n-n+2);}return 0;}