摆方格

    xiaoxiao2021-03-25  80

    摆方格

    时间限制:1000 ms  |  内存限制:65535 KB

    难度:2

    描述

      给你一个n*n的方格,每个方格里的数必须连续摆放如  

     

    ,下图为不连续的,请输出从左上角到右下角的对角线上的最大和   

     

    输入

    输入包含多组测试数据。 每一行包括一个数据n,表示n*n的方格(保证所有数据在2^64范围内且n>0)

    输出

    每行输出占一行,输出最大的对角线之和。

    样例输入

    1

    2

    3

    样例输出

    1

    6

    19

    多画几组,找规律!

     

           n=1

     

             1

     

          n=2

     

          2 1

          3 4  //4  2

     

         n=3

     

         3 2 1

         4 7 8

         5 6 9 //9  7  3(7/2)

     

           

        n=4

          9 10 15 16

          8 11 14  1

          7 12 13  2

          6   5   4   3  // 16  14  12  6(12/2)

     

         5

     

           15 16 17 18 19

           14 13 22 21 20

           11 12 23  2   1

           10 25 24  3   4

           9   8

    等差数列第n an=a1+n*d

    等差数列前n项和 sn=n*a1+n*(n-1)*d/2

    #include<cstdio> #include<iostream> #include<string.h> #include<algorithm> #include<stdlib.h> using namespace std; int main() { long long n,ans; while(cin >> n) { ans=(n-1)*n*n-(n-1)*(n-2)+n*n/2+2-n; cout << ans << endl; } return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-34431.html

    最新回复(0)