美文网首页C++探索之旅ACMACM题库~
n个m边形最多可以把平面分成几部分这个问题

n个m边形最多可以把平面分成几部分这个问题

作者: Gadore千里 | 来源:发表于2016-08-05 20:09 被阅读249次

    先摆道理,然后再讲事实:

    n>1,m>=3.
    在这里m为m边形的边数,拿三角形来说m=3,长方形m=4 。
    

    N(1)=2
    无论几边形,当个数只有一个时,那么平面只能被分成两部分,即这个图形内部和外部两部分。
    

    N(n)=N(n-1)+2*m(n-1)
    当n>=2时,就可以用这个公式来解决标题提出的问题了。
    三角形、四边形、五边形均已验证,以后的形状也可参照此公式。
    如发现特殊情况欢迎联系我,我会进行修正。
    

    还是先看例题:

    Description

    用N个三角形最多可以把平面分成几个区域?

    ps:显然,这里m=3
    则问题转化成:
    n个三角形最多可以把平面分成几部分。

    Input

    输入数据的第一行是一个正整数T(1<=T<=10000),表示测试数据的数量.然后是T组测试数据,每组测试数据只包含一个正整数N(1<=N<=10000).

    Output

    对于每组测试数据,请输出题目中要求的结果.

    Sample Input

    2
    1
    2

    Sample Output

    2
    8

    理解

    画一个二维数组,多写几个数据,找规律,打表,输出。
    规律:N(n)=N(n-1)+2m(n-1)
    将m换成3
    a[i]=a[i-1]+6
    (i-1)。

    代码部分

    #include <cstdio>
    using namespace std;
    int a[10001],t,n;
    int main()
    {
        a[1]=2;
        for(int i=2;i<10001;i++)
        {
            a[i]=a[i-1]+6*(i-1);
        }
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d",&n);
            printf("%d\n",a[n]);
        }
        return 0;
    }
    

    意见反馈 || 任何建议

    联系我(新浪)
    邮箱:qianlizhihao@gmail.com

    相关文章

      网友评论

        本文标题:n个m边形最多可以把平面分成几部分这个问题

        本文链接:https://www.haomeiwen.com/subject/cqfksttx.html