分割平面
題目描述
設有n條封閉曲線畫在平面上,而任何兩條封閉曲線恰好相交於兩點,且任何三 條封閉曲線不相交於同一點,問這些封閉曲線把平面分割成的區域個數。
輸入格式
一個數n(1≤n≤46341)
輸出格式
一個數,這些曲線把平面分割成的個數總和
樣例
樣例輸入
3
樣例輸出
8
精髓:
當前平面的個數等於前一個圖形平面的個數加上新增的平面的個數。
前一個平面的個數就是a[n-1]。新增的平面的個數恰好是上一圖橢圓數量的兩倍,也就是2*(n-1)。
所以遞推式就是:a[i]=a[i-1]+2*(i-1);
參考代碼:
#include<cstdio>
int main() {
int n;
long long a[46345]={0,2};
scanf("%d",&n);
for(int i=2;i<=n;i++) {
a[i]=a[i-1]+2*(i-1);
}
printf("%d",a[n]);
}