前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tip | 蛇形矩阵

Tip | 蛇形矩阵

作者头像
凌川江雪
发布2019-05-15 14:20:12
5180
发布2019-05-15 14:20:12
举报
文章被收录于专栏:李蔚蓬的专栏李蔚蓬的专栏

输入一个数字i,需要返回的内容如下:

  • 输入一个数字i,输出结果的矩阵是i行i列的。 矩阵从右上角开始,从1开始往下,每增加1行加1。 到第i行后,再往左,每左一列加1。 到头后再往上、往右、再往下…., 其中已经填上的数字不能覆盖,直接转向, 现要求输入任意元素i,返回矩阵内容;

code(仅供参考):

代码语言:javascript
复制
#include <iostream>
using namespace std;

int main(){
    int i;
    cout<<"请输入i:"<<endl;
    cin>>i;
    int out[i][i];
    int count = 1;
    int m = i/2 + 1 ;
    int xyv = 0;
    

    int n = 0;

    int icount = 1;
    while(icount != m ){
        for (int j= xyv ; j <= i - icount ; ++j)
    {
                
        out[j][i - icount] = count;
        count++;
    }

        for (int y =  i - icount -1; y >= xyv ; --y)
    {
        out[i - icount][y] = count;
        count++;
    }

        for (int x = i - icount -1; x >= xyv ; --x)
    {
        out[x][xyv] = count;
        count++;
    }

        for (int ty = icount; ty <= i - icount -1;++ty)
    {
        out[xyv][ty] = count;
        count++;
    }

       icount++;
       xyv++;
    }

    m--;
    if(i%2==1)
    out[m][m] = i*i;

    for(int k0 = 0; k0 < i; ++k0)
    {
        for (int k1 = 0; k1 < i; ++k1)
        {
            printf("%4d", out[k0][k1]);
        }
        cout<<endl;
    }
    return 1;
}

思路:一个while一组四个箭头:

运行结果:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.05.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档