Android开发Android技术知识Android开发经验谈

Tip | 蛇形矩阵

2019-05-07  本文已影响5人  凌川江雪

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

code(仅供参考):

#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一组四个箭头:
运行结果:
上一篇 下一篇

猜你喜欢

热点阅读