Problem Description
我们看到过很多直线分割平面的题目,
今天的这个题目稍微有些变化,
我们要求的是n条折线分割平面的最大数目。
比如,一条折线可以将平面分成两部分,
两条折线最多可以将平面分成7部分,具体如下所示。
Input
输入数据的第一行是一个整数C,
表示测试实例的个数,
然后是C 行数据,每行包含一个整数n(0<n<=10000),
表示折线的数量。
Output
对于每个测试实例,请输出平面的最大分割数,
每个实例的输出占一行。
Sample Input
2
1
2
Sample Output
2
7
思路
两个方法,详细看代码,主要还是找规律。
方法①
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int c=sc.nextInt();
for(int i=0;i<c;i++){
int n=sc.nextInt();
{
int dp[]=new int[n+1];
int jd[]=new int[n+1];
jd[0]=0;
dp[0]=0;
for(int k=1;k<=n;k++){
jd[k]=4*(k-1)+jd[k-1];
dp[k]=jd[k]+k+1;
}
System.out.println(dp[n]);
}
}
}
}
方法②
import java.util.*;
class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int c=sc.nextInt();
//while(c-->0){
for(int i=0;i<c;i++){
int n=sc.nextInt();
System.out.println(2*n*n-n+1);
}
}
}