总结一波数字矩阵的小技巧

 

模板

#include<bits/stdc++.h>

using namespace std;

int main()

{

    int n,a[110][110];

    cin>>n;

    for(int i=1;i<=n;i++)

        {

        for(int j=1;j<=n;j++)

            {

                a[i][j]=表达式;

            }

        }     

     for(int i=1;i<=n;i++)

        {

        for(int j=1;j<=n;j++)

            {

            cout <<a[i][j] << " ";

            }

            cout << endl;

        }     

    return 0;

}

下面是几种输出的表达式(此处的输入均为3):

1.输出:

1 2 3 

4 5 6

7 8 9

(i-1)*n+j

2.输出:

3 2 1

6 5 4

9 8 7

(i-1)*n+(n+1-j)

可化简为 n*i-j+1

3.输出:

7 8 9

4 5 6

1 2 3

(n-i)*n+j

4.输出:

9 8 7

6 5 4 

3 2 1

(n-i)*n+n+1-j

5.输出:

1 4 7

2 5 8

3 6 9

(j-1)*n+i

6.输出:

3 6 9

2 5 8

1 4 7

(j-1)*n+n+1-i

7.输出:

7 4 1 

8 5 2

9 6 3

(n-j)*n+i

8.输出:

9 6 3

8 5 2

7 4 1

(n-j)*n+n+1-i

9.输出:

3 2 1

4 3 2

5 4 3

i+n+1-j-1

可化简为:i+n-j

10.输出:

3 4 5

2 3 4

1 2 3

n+1-i+j-1

可化简为:j+n-i

11.输出:

5 4 3 

4 3 2

3 2 1

n+1-i+n+1-j-1

可化简为:2*n+1-i-j

特殊:

1 2 3

2 3 2

3 2 1

程序为:

#include<bits/stdc++.h>

using namespace std;

int main()

{

    int n,a[110][110];

    cin>>n; 

    for(int i=1;i<=n;i++)

        {

        for(int j=1;j<=n;j++)

            {

            if(i+j<=n+1)

                a[i][j]=i+j-1;

            else

                a[i][j]=n+1-i+n+1-j-1;

            }

        }     

     for(int i=1;i<=n;i++)

        {

        for(int j=1;j<=n;j++)

            {

            cout <<setw(3)<<a[i][j] << " ";

            }

            cout << endl;

        }     

    return 0;

}

备注:stew(参数)为场宽,可用可不用。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值