黑马程序员技术交流社区
标题:
用递归算法打印旋转方阵的输出问题
[打印本页]
作者:
雀巢咖啡
时间:
2014-4-24 22:30
标题:
用递归算法打印旋转方阵的输出问题
我用递归算法打印的旋转方阵代码如下:
class xuanzhuan
{
public static void main(String[] args)
{
int[][] arr=new int[6][6];//建立6X6的二位数组
perm(arr,0,1,6);//函数调用
for(int i=0;i<6;i++)
{
for(int j=0;j<6;j++)
{
System.out.print(arr[i][j]+" ");//打印数组
}
System.out.print("\n");
}
}
public static void perm(int arr[][],int start,int num,int size)// 实现旋转方阵的函数
{
int i=start;
int j=start;
if(size==0)//当方阵大小为0时结束
return;
if(size==1)
arr[start][start]=num;//当方阵大小为1时直接打印
for(int k=0;k<size-1;k++)//打印A区域
{
arr[i][j]=num;
num++;
i++;
}
for(int k=0;k<size-1;k++)//打印B区域
{
arr[i][j]=num;
num++;
j++;
}
for(int k=0;k<size-1;k++)//打印C区域
{
arr[i][j]=num;
num++;
i--;
}
for(int k=0;k<size-1;k++)//打印D区域
{
arr[i][j]=num;
num++;
j--;
}
perm(arr,start+1,num,size-2);//递归调用
}
}
复制代码
运行结果:
C:\Users\Administrator\Desktop
怎样才能让方正对齐(及最下面一行的数与其上一行的数对齐?)。或者有没有更好的方法打印旋转方阵,求交流。
作者:
张耀扬
时间:
2014-4-24 23:55
让方正对齐的办法是, 设置console的字体为等宽字体, 如常见的Courier字体,也叫Courier new ,你在eclipse里的windows选项里preferences里可以找到
作者:
水竹
时间:
2014-4-25 00:01
本帖最后由 水竹 于 2014-4-25 00:04 编辑
沙发是错的,你之所以没对齐是因为最后一行好多只有个位数字的,想要对齐也很简单,你之前用的空格分隔,换成制表符就行了:
System.out.println(arr[i][j]+"\t");//打印数组
复制代码
觉得制表符太宽的话也好说啊,循环输出之前先加个判断,如果值小于10就打印个空格就是了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2