链接:Problem - 2050 (hdu.edu.cn)
题目大意:
折线相交得到的最大平面数
解题思路:
1、如果都是直线
则规律为
f(1)=2
f(2)=4
f(3)=7
....
f(n)=f(n-1)+n
2、如果折线
f(1)=2
f(2)=7
f(3)=16
....
f(n)=f(n-1)+4*(n-1)+1=f(1)+4+4*2+...+4*(n-1)+n-1=2n^2+1-n
代码实现:
1、递归
#include <iostream>
using namespace std;
long long m=2;
long long di(long long n){
if(n==1) return m;
return di(n-1)+4*(n-1)+1;
}
int main(){
long long n;
cin>>n;
while(n--){
long long a;
cin>>a;
cout<<di(a)<<endl;
}
return 0;
}
2、
#include <iostream>
using namespace std;
int main(){
long long m;
cin>>m;
while(m--){
long long n;
cin>>n;
cout<<2*n*n+1-n<<endl;
}
return 0;
}