2017腾讯校招模拟题----环形蛇形矩阵
2017-03-26 16:19
176 查看
1 2 3 4 5 6 7 8 9 10
36 37 38 39 40 41 42 43 44 11
35 64 65 66 67 68 69 70 45 12
34 63 84 85 86 87 88 71 46 13
33 62 83 96 97 98 89 72 47 14
32 61 82 95100 99 90 73 48 15
31 60 81 94 93 92 91 74 49 16
30 59 80 79 78 77 76 75 50 17
29 58 57 56 55 54 53 52 51 18
28 27 26 25 24 23 22 21 20 19
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
const int maxn=10;
int a[maxn][maxn];
int main()
{
int n;
cin>>n;
int tot,x,y;
memset(a,0,sizeof(a));
tot=a[x=0][y=0]=1;
while(tot<n*n)
{
while(y+1<n&&!a[x][y+1])a[x][++y]=++tot;
while(x+1<n&&!a[x+1][y])a[++x][y]=++tot;
while(y-1>=0&&!a[x][y-1])a[x][--y]=++tot;
while(x-1>=0&&!a[x-1][y])a[--x][y]=++tot;
}
for(x=0;x<n;x++)
{
for(y=0;y<n;y++)
printf("%3d",a[x][y]);
cout<<endl;
}
return 0;
}
36 37 38 39 40 41 42 43 44 11
35 64 65 66 67 68 69 70 45 12
34 63 84 85 86 87 88 71 46 13
33 62 83 96 97 98 89 72 47 14
32 61 82 95100 99 90 73 48 15
31 60 81 94 93 92 91 74 49 16
30 59 80 79 78 77 76 75 50 17
29 58 57 56 55 54 53 52 51 18
28 27 26 25 24 23 22 21 20 19
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
const int maxn=10;
int a[maxn][maxn];
int main()
{
int n;
cin>>n;
int tot,x,y;
memset(a,0,sizeof(a));
tot=a[x=0][y=0]=1;
while(tot<n*n)
{
while(y+1<n&&!a[x][y+1])a[x][++y]=++tot;
while(x+1<n&&!a[x+1][y])a[++x][y]=++tot;
while(y-1>=0&&!a[x][y-1])a[x][--y]=++tot;
while(x-1>=0&&!a[x-1][y])a[--x][y]=++tot;
}
for(x=0;x<n;x++)
{
for(y=0;y<n;y++)
printf("%3d",a[x][y]);
cout<<endl;
}
return 0;
}
相关文章推荐
- 蛇形矩阵----2017腾讯校招模拟题
- 2017腾讯校招面试回忆(成功拿到offer)
- 【JAVA】腾讯研发类在线笔试题之蛇形矩阵实现
- 2017腾讯校招面试回忆(成功拿到offer)
- 2017腾讯校招前端面试题
- 素数对-2017腾讯校招(水题,为了给自己留个素数板。。。。)
- 环形蛇形矩阵
- 腾讯校招模拟面试题之蛇形打印
- 2017腾讯校招编程
- 环形(蛇形)矩阵
- 牛客网编程练习之腾讯2017校招题:游戏任务标记
- 腾讯2017校招模拟考
- geohash编码 (腾讯2017校招开发工程师试卷一)
- [腾讯]打印蛇形矩阵
- 2017腾讯校招笔试编程题-拼凑零钱
- 腾讯2016实习笔试:n阶蛇形矩阵
- 腾讯2017校招编程:一个数等于两个素数的和
- 素数对--腾讯2017校招编程
- 腾讯2016软开实习生笔试题-编程1:蛇形矩阵
- [2017腾讯校招在线笔试题]