数字旋转方阵java代码 数字旋转方阵时间复杂度

输入一个整数N(3改成C语言数字旋转方阵java代码的 。
不要在代码行间定义变量 。
输入9可能会有问题 。
c语言 递归 解 数字旋转方阵#include iostream
using namespace std;
#define N 9
int P[N][N];
void fill (int number,int begin,int size)
{
if (size == 0)
return ;
if (size ==1)
{
P[begin][begin] = number;
return ;
}
int i = 0;
int h = begin,v=begin;
P[h][v]=number;number++;
for (i = 0;isize-1;i++)
{
h++;
P[h][v] =number;
number++;
}
for (i=0;isize-1;i++)
{
v++;
P[h][v] = number;
number++;
}
for (i=0;isize-1;i++)
{
h--;
P[h][v] = number;
number++;
}
for (i=0;isize-2;i++)//修改的地方
{
v--;
P[h][v] = number;
number++;
}
fill(number,v,size-2);
}
int main ()
{
fill(1,0,N);
int h,v;
for (h =0;hN;h++)
{
for (v=0;vN;v++)
coutP[h][v]'\t';
cout'\n';
}
return 0;
}
对一个方阵转置,就是把原来的行号变列号,原来的列号变行号第一个空位 sizeof(int)*rank*rank
第二个空位 rank*(rank-i%rank-1)+i/rank
你可以编写程序测试,或者带入数字验算,这个完全符合需求 。
编写一个java程序,输出如下形式的数字方阵(当n=4时): 1 2 5 10 4 3 6 11 9 8 7 12 16 15 14 13public class Test940 {
public static void main(String[] args) {
fx(5);
}
private static void fx(int n) {
for (int i = 1; i = n; i++) {
for (int j = 1; j = n; j++) {
if (j == 1) {
System.out.print(String.format("%02d ", i * i));
} else if (i == 1 || i = j) {
System.out.print(String.format("%02d ", (j - 1) * (j - 1) + i));
} else {
System.out.print(String.format("%02d ", i * i - j + 1));
}
}
System.out.println();
}
}
}
C语言如何编写旋转矩阵源代码这里以顺时针旋转90°为例:
#includestdio.h
#includestdlib.h
#includetime.h
#define N 4
void main()
{
int i,j;
int a[N*N],b[N][N];//这里设置旋转为4*4的矩形,自己在这里改成其它的矩形
int *p=a;//用指针来指向这个一维数组 。这样在旋转赋值的时候会轻松很多
srand(time(NULL));
for(i=0;iN*N;i++)
{
a[i]=rand()%100;//随机生成0~99
printf("%d\t",a[i]);
if((i+1)%4==0)
printf("\n");
}
for(i=N-1;i=0;i--) //旋转赋值,这里可修改旋转的方向和角度
for(j=0;jN;j++,p++)
b[j][i]=*p;
printf("顺时针旋转90度后:\n");
for(i=0;iN;i++)
{for(j=0;jN;j++)
printf("%d\t",b[i][j]);
printf("\n");
}
}
这种旋转矩形的 , 个人建议生成一维数组,用指针指向改数组,再用指针来赋值;也可生成二维数组,再定义数组指针来指向,这样稍麻烦一些些 。
【数字旋转方阵java代码 数字旋转方阵时间复杂度】关于数字旋转方阵java代码和数字旋转方阵时间复杂度的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读