螺旋矩阵
2014-04-03 19:21
169 查看
逆时针旋转的矩阵
顺时针旋转矩阵
#include<iostream> using namespace std; #define N 100 int a ; void fun(int n) { int m=1,i,j; for(i=0;i<n/2;i++)//只旋转n/2次 { for(j=i;j<n-i;j++)//左侧 { if(a[j][i]==0) a[j][i] = m++; } for(j=i+1;j<n-i;j++)//下侧 { if(a[n-i-1][j]==0) a[n-i-1][j]= m++; } for(j=n-i-1;j>i;j--)//右侧 { if(a[j][n-i-1]==0) a[j][n-i-1]=m++; } for(j=n-i-1;j>i;j--)//上侧 { if(a[i][j]==0) a[i][j]=m++; } } if(n%2==1)//注意当n为奇数的时候,最后有个正中心点 a[n/2][n/2] = m; } int main() { int n,i,j; cout<<"请输入 n 的值:"; cin>>n; for(i=0;i<n;i++) { for(j=0;j<n;j++) a[i][j] = 0; } fun(n); for(i=0;i<n;i++) { for(j=0;j<n;j++) { cout<<a[i][j]<<"\t"; } cout<<endl; } system("pause"); return 0; }
顺时针旋转矩阵
#include<iostream> using namespace std; #define N 100 int a ; void fun(int n) { int m=1,i,j; for(i=0;i<n/2;i++)//只旋转n/2次 { for(j=i;j<n-i;j++)//上侧 { if(a[i][j]==0) a[i][j] = m++; } for(j=i;j<n-i;j++)//右侧 { if(a[j][n-i-1]==0) a[j][n-i-1]=m++; } for(j=n-i-1;j>i;j--)//下侧 { if(a[n-i-1][j]==0) a[n-i-1][j]=m++; } for(j=n-i-1;j>i;j--)//左侧 { if(a[j][i]==0) a[j][i]= m++; } } if(n%2==1)//注意当n为奇数的时候,最后有个正中心点 a[n/2][n/2] = m; } int main() { int n,i,j; cout<<"请输入 n 的值:"; cin>>n; for(i=0;i<n;i++) { for(j=0;j<n;j++) a[i][j] = 0; } fun(n); for(i=0;i<n;i++) { for(j=0;j<n;j++) { cout<<a[i][j]<<"\t"; } cout<<endl; } system("pause"); return 0; }
相关文章推荐
- leetcode 54. Spiral Matrix 螺旋方式读取矩阵
- 螺旋矩阵
- 逆时针顺序的螺旋矩阵打印
- 逆蛇型矩阵(螺旋魔方矩阵)
- 螺旋矩阵
- PAT螺旋矩阵(25)
- LeetCode 59. Spiral Matrix II (JAVA)(螺旋矩阵2)
- 螺旋矩阵 之二
- PAT Basic 1050. 螺旋矩阵(25)(C语言实现)
- 螺旋矩阵
- 螺旋矩阵
- 螺旋矩阵 有内及外 逆时针
- js创建蛇形(螺旋)N*N矩阵,顺时针增加
- 1,2,3…n*n 的数字按照顺时针螺旋的形式打印成矩阵(递归)
- PATB 1050. 螺旋矩阵(25)
- 螺旋矩阵
- 1050. 螺旋矩阵(25)
- 【C++】【PAT】1050螺旋矩阵
- NOIP--螺旋矩阵(技巧+模拟)
- 1050. 螺旋矩阵(25)