C++递归实现螺旋数组的实例代码
仅供参考,若有可改进之处,欢迎一起交流!
#includeusingnamespacestd; //参数x表示开始元素的下标,m,n用于确定4条边尽头。 //a,b则用于判断是否可进行螺旋。p为二维数组。 voidlx(intx,intm,intn,inta,intb,int**p); intmain() { //输入行列 intm=0,n=0; cin>>m>>n; int**a=newint*[m]; for(inti=0;i 1) for(inti=n-2;i>=x;--i) p[m-1][i]=p[m-1][i+1]+1; if(b>1) for(intj=m-2;j>=x+1;--j) p[j][x]=p[j+1][x]+1; //判断是否符合螺旋条件,从而判断是否调用lx函数 if((a-2>0)&&(b-2>0)) lx(x+1,m-1,n-1,a-2,b-2,p); }
调试
78
12345678
262728293031329
2544454647483310
2443545556493411
2342535251503512
2241403938373613
2120191817161514
知识点扩展:
c++螺旋数递归实现
voidprintValue(inthead,intx,inty,intn) { intNextHead=head+4*n-4; head=head-1; if(x==n) { cout<<(n+y-1)+head<<""; if(!head)cout<总结
到此这篇关于C++递归实现螺旋数组的文章就介绍到这了,更多相关c++递归螺旋数组内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。