社区
新手乐园
帖子详情
回旋矩阵的算法如何写?
simonf
2007-05-27 10:55:29
回旋矩阵的算法如何写?
例如输入 5 就是输出
1 ,16,15,14 ,13
2 ,17,24,23 ,12
3 ,18,25,22 ,11
4 ,19,20,21 ,10
5 , 6, 7, 8 , 9
例如 输入4 就输出,
1,12,11,10
2,13,16, 9
3,14,15, 8
4, 5, 6, 7
...全文
439
8
打赏
收藏
回旋矩阵的算法如何写?
回旋矩阵的算法如何写? 例如输入 5 就是输出 1 ,16,15,14 ,13 2 ,17,24,23 ,12 3 ,18,25,22 ,11 4 ,19,20,21 ,10 5 , 6, 7, 8 , 9 例如 输入4 就输出, 1,12,11,10 2,13,16, 9 3,14,15, 8 4, 5, 6, 7
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
romanticwz
2007-06-04
打赏
举报
回复
#include<stdio.h>
main(){
int i=0,j,m,n=1,a=0,k=0;
int c;
c=m=10;
int buf[10][10];
for(k=0;k<m;){
for(i=j=k;j<m;j++){
a++;
buf[j][i]=a;
}
i++;
j--;
for(;i<=j;i++){
a++;
buf[j][i]=a;
}
m--;
i=m;
for(j=m-1;j>=k;j--){
a++;
buf[j][i]=a;
}
i--;
j++;
for(;i>=n;i--){
a++;
buf[j][i]=a;
}
n++;
k++;
}
for(i=0;i<c;i++){
for(j=0;j<c;j++){
printf("%5d",buf[i][j]);
}
printf("\n");
}
return 0;
}
romanticwz
2007-06-04
打赏
举报
回复
#include<stdio.h>
main(){
int i=0,j,m,n=1,a=0,k=0;
int buf[5][5];
int c;
c=m=6;
for(k=0;k<m;){
for(i=j=k;j<m;j++){
a++;
buf[j][i]=a;
}
i++;
j--;
for(;i<=j;i++){
a++;
buf[j][i]=a;
}
m--;
i=m;
for(j=m-1;j>=k;j--){
a++;
buf[j][i]=a;
}
i--;
j++;
for(;i>=n;i--){
a++;
buf[j][i]=a;
}
n++;
k++;
}
for(i=0;i<c;i++){
for(j=0;j<c;j++){
printf("%5d",buf[i][j]);
}
printf("\n");
}
return 0;
}
这个是自己写的,不太好多多饮食。
gracefullee
2007-06-04
打赏
举报
回复
并且:a[j]=m--是这样运算的,先是将m的值赋给a[j],然后m自减1。
gracefullee
2007-06-04
打赏
举报
回复
ls的没看懂我问的是什么??
a[N][N]的话,a[j]是一个地址值,能把一个变量赋值给地址么??
yiqisetian
2007-06-04
打赏
举报
回复
m先减1,然后放到a[j]中,多清楚啊,要是没看懂就看一下运算符优先级,
程序都给出来了,lz还是钻研一下吧,不难的
gracefullee
2007-06-04
打赏
举报
回复
a[j]=m-- ???
这个是怎么赋值的?
看不懂了
simonf
2007-06-02
打赏
举报
回复
好像很复杂,可以说说详细的思路吗?
iu_81
2007-05-27
打赏
举报
回复
#include<iostream.h>
#include<iomanip.h>
void main()
{
const int N=20;
int i=0,j=0,a[N][N],n;
int m,x1,x2,y1,y2,s;
//x1,x2,y1,y2为上、下、左、右边界
//s标记数组元素升降,s==1为升,s==-1为降
while(1)
{
cout<<"\ninput matrix row N(N>=2): ";
cin>>n;
cout<<endl;
if(n>=2)
break;
}
m=n*n;
x1=0;y1=0;x2=n;y2=n;
if(n%2==0)
{j=n-1;y2=n-1;s=1;}
else
{i=n-1;y1=1;s=-1;}
while(1)
{
if(s==1)
{
for(i;i<x2;i++)
a[j]=m--;
i--;j--;x2--;
for(j;j>=y1;j--)
a[j]=m--;
j++;i--;y1++;
s=-1;
}
else
{
for(i;i>=x1;i--)
a[j]=m--;
i++;j++;x1++;
for(j;j<y2;j++)
a[j]=m--;
j--;i++;y2--;
s=1;
}
if(m<1)
break;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
cout<<setw(4)<<setiosflags(ios::left)<<a[j];
cout<<endl;
}
cout<<endl;
}
C#中的
回旋
矩阵
一个C#的
算法
,实现数字的
回旋
排列,从大到小,顺时针排列,核心
算法
适用于其他语言
C#
回旋
数 控制台程序
输入输出的
矩阵
边长,即可按提示操作。主要实现数组与for循环配合使用的高级
算法
。
经典教材:统计计算(高慧璇)
pdf影印清晰版 第一章 误差与数据处理 第二章 常用分布函数和分位数的计算 第三章 随机数的产生和检验 ...第五章 统计计算中常用的
矩阵
算法
第六章 多元线形回归的计算方法 第七章 非线形回归分析及其
算法
nmf的matlab代码-rs-mnmf:基于射线空间的多通道非负
矩阵
分解
在最流行的替代方案中,多通道NMF(MNMF)和基于受约束的空间协方差模型的进一步推导已成功地用于分离多麦克风
回旋
混合物。 这封信提出了通过考虑具有Ray-Space转换信号的混合模型来提出MNMF扩展,其中幅度数据成功...
lrucacheleetcode-algorithm-questions:Javascript中Leetcode
算法
问题的答案
lru缓存leetcode
算法
题 Javascript 中 Leetcode
算法
问题的答案。 魔法弦 查找排列 按频率排序字符 数组中两个数字的最大异或 对角线遍历 下一个大元素 ...
矩阵
...排序
矩阵
中的第 ...
回旋
镖数量 最大连续数 II
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章