一个简单的模拟程序,上次比赛时到最后没时间做了。
给出行数和列数,按照第一步向右或向下输出蛇形矩阵。
样例输入和输出:
先贴一个简单的,行数和列数相等的:
#include<iostream>
#include<iomanip>
using namespace std;
int N;
int dir;
int map[100][100];
int ID;
int main()
{
char c;
while(cin>>N>>c)
{
if(c=='R')
dir=0;
else
dir=1;
ID=1;
for(int i=0;i<N;i++)
{
for(int j=0;j<=i;j++)
{
if((i+dir)%2==0) //偶数列
{
map[i-j][j]=ID;
ID++;
}
else if((i+dir)%2==1)
{
map[j][i-j]=ID;
ID++;
}
}
}
for(i=N;i<=2*N-2;i++)
{
for(int j=0;j<2*N-i-1;j++)
{
if((i+dir)%2==0)
{
map[(N-1)-j][i-(N-1)+j]=ID;
ID++;
}
else if((i+dir)%2==1)
{
map[i-(N-1)+j][(N-1)-j]=ID;
ID++;
}
}
}
for(i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
cout<<left<<setw(4)<<map[i][j];
}
cout<<endl;
}
}
return 0;
}
下面是任意矩形的:
#include<iostream>
#include<iomanip>
using namespace std;
int N,M;
int map[100][100];
int ID;
int dir;
char c;
int main()
{
int MAX,MIN;
while(cin>>N>>M>>c)
{
if(c=='R')
dir=0;
else
dir=1;
ID=1;
MAX= N>=M? N:M;
MIN= N<=M? N:M;
for(int i=0;i<MIN;i++)
{
for(int j=0;j<=i;j++)
{
if((dir+i)%2==0)
{
map[i-j][j]=ID;
ID++;
}
else if((dir+i)%2==1)
{
map[j][i-j]=ID;
ID++;
}
}
}
if(M>N)
{
for(i=N;i<M;i++) //中间的
{
for(int j=0;j<N;j++)
{
if((dir+i)%2==0)
{
map[(N-1)-j][i-(N-1)+j]=ID;
ID++;
}
else if((dir+i)%2==1)
{
map[j][i-j]=ID;
ID++;
}
}
}
}
else if(N>M)
{
for(int i=M;i<N;i++)
{
for(int j=0;j<M;j++)
{
if((dir+i)%2==0)
{
map[i-j][j]=ID;
ID++;
}
else if((dir+i)%2==1)
{
map[i-(M-1)+j][(M-1)-j]=ID;
ID++;
}
}
}
}
for(i=MAX;i<=M+N-2;i++)
{
for(int j=0;j<N+M-i-1;j++)
{
if((dir+i)%2==0)
{
map[(N-1)-j][i-(N-1)+j]=ID;
ID++;
}
else if((dir+i)%2==1)
{
map[i-(M-1)+j][(M-1)-j]=ID;
ID++;
}
}
}
for(i=0;i<N;i++)
{
for(int j=0;j<M;j++)
{
cout<<left<<setw(3)<<map[i][j];
}
cout<<endl;
}
}
return 0;
}
分享到:
相关推荐
C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之蛇形矩阵C++之...
以前用c++写的一个蛇形矩阵
java 蛇形矩阵 最简单的 初学者用
使用二维数组和双重循环打印蛇形矩阵使用二维数组和双重循环打印蛇形矩阵使用二维数组和双重循环打印蛇形矩阵
用C++写的一个蛇形矩阵,当输入一个整数n(10>=n>=1)时,输出大小为n行n列的蛇形矩阵。
蛇形矩阵递归算法,通过简单地递归实现蛇形矩阵的输出
求解三角形伴随矩阵的参考文献,根据这篇文献设计求逆矩阵思路如下: 求逆矩阵思路: 1.求矩阵的crout(LU)分解,其中L为下三角矩阵,U为上三角矩阵 2.求L,U矩阵的伴随阵 3.求L,U矩阵的逆(伴随阵A* /det(A...
生成一个n阶的蛇形矩阵的java程序 输入矩阵宽度n生成宽度为n的递增的蛇形矩阵
基于c++的蛇形矩阵,通过用户输入蛇形矩阵的维数,自动具体输出蛇形排列矩阵
因此输出的形状,像条蛇,因此称为蛇形矩阵.
这是一个c语言的作业,能够输出逆时针蛇形矩阵,很好用!!
c++练习题蛇形矩阵
学习数组或则循环结构时经常遇到的一个可以说是经典的问题——蛇形矩阵
c# 上三角螺旋加下三角蛇形矩阵 N=4时 1 11 12 13 7 2 16 14 8 6 3 15 10 9 5 4 N=5时 1 16 17 18 19 9 2 24 25 20 10 8 3 23 21 14 11 7 4 22 15 13 12 6 5
蛇形矩阵的实现的经典案例for(i=1;i;i++)/*对副对角线上三角端点赋值*/ { k=k+i; if(i%2==1) { a[0][i]=k; a[i][0]=k+i; } else { a[i][0]=k; a[0][i]=k+i; } }
自己写的一个小程序,输入一个整数N,输出N阶逆时针蛇形矩阵
输入正方形数字矩阵边长 a,,如样例所示规律,输出矩阵(不要求对齐,每行每个数分别用一个空格格开)。 样例: 输入: 4 输出: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 输入: 5 输出: 13 14 15 16 1 ...
// 例如 4 x 4 蛇形矩阵 // 1 3 - 4 10 // | / / / | // 2 5 9 11 // / / / // 6 8 12 15 // | / / / | // 7 13 - 14 16 http://blog.csdn.net/ssuchange/article/details/17347743
这是一款用矩阵分解算法实现的FFT蝶形算法,根据著名的fast algorithm of DCT 1974年的论文实现
用于生成圆形区域掩膜矩阵的函数,可指定矩阵尺寸,圆心位置以及半径。