数字正方形

bianchenglangzi_110 2012-04-10 08:04:56
做一个数字的正方形

比如


1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16


目的让他顺时针旋转 且 中间的四个数字6,7,10,11不变,每次转动一个位置 如何实现?
...全文
253 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
ok 结贴 没有问题
threenewbee 2012-04-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
先多谢caozhy了

可能是我没有表达清楚
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
6,7,10,11不动 周围数字顺时针不停转动 每次转动一个位置
[/Quote]
是啊,难道不是么。
  • 打赏
  • 举报
回复
先多谢caozhy了

可能是我没有表达清楚
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
6,7,10,11不动 周围数字顺时针不停转动 每次转动一个位置
只在此山中 2012-04-10
  • 打赏
  • 举报
回复
把除中间数字外的数据 按 顺时针 放进1个队列, 队列右移1位后,再把队列放回对应的位置.
关键是取出4条边的数据 按 顺时针 放进1个队列,简单的可以用4个循环取出4条边.
threenewbee 2012-04-10
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[,] data = { { 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 },
{ 13, 14, 15, 16 } };
Console.WriteLine("----------------------------");
for (int k = 0; k < 12; k++)
{
int temp = data[0, 3];
for (int i = 3; i > 0; i--)
{
data[0, i] = data[0, i - 1];
}
for (int i = 0; i < 3; i++)
{
data[i, 0] = data[i + 1, 0];
}
for (int i = 0; i < 3; i++)
{
data[3, i] = data[3, i + 1];
}
for (int i = 3; i > 0; i--)
{
data[i, 3] = data[i - 1, 3];
}
data[1, 3] = temp;
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
Console.Write(data[i, j] + "\t");
Console.WriteLine();
}
Console.WriteLine("----------------------------");
}

}
}
}
/*
----------------------------
5 1 2 3
9 6 7 4
13 10 11 8
14 15 16 12
----------------------------
9 5 1 2
13 6 7 3
14 10 11 4
15 16 12 8
----------------------------
13 9 5 1
14 6 7 2
15 10 11 3
16 12 8 4
----------------------------
14 13 9 5
15 6 7 1
16 10 11 2
12 8 4 3
----------------------------
15 14 13 9
16 6 7 5
12 10 11 1
8 4 3 2
----------------------------
16 15 14 13
12 6 7 9
8 10 11 5
4 3 2 1
----------------------------
12 16 15 14
8 6 7 13
4 10 11 9
3 2 1 5
----------------------------
8 12 16 15
4 6 7 14
3 10 11 13
2 1 5 9
----------------------------
4 8 12 16
3 6 7 15
2 10 11 14
1 5 9 13
----------------------------
3 4 8 12
2 6 7 16
1 10 11 15
5 9 13 14
----------------------------
2 3 4 8
1 6 7 12
5 10 11 16
9 13 14 15
----------------------------
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
----------------------------
Press any key to continue . . .
*/

threenewbee 2012-04-10
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[,] data = { { 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 },
{ 13, 14, 15, 16 } };
int temp = data[0, 3];
for (int i = 3; i > 0; i--)
{
data[0, i] = data[0, i - 1];
}
for (int i = 0; i < 3; i++)
{
data[i, 0] = data[i + 1, 0];
}
for (int i = 0; i < 3; i++)
{
data[3, i] = data[3, i + 1];
}
for (int i = 3; i > 0; i--)
{
data[i, 3] = data[i - 1, 3];
}
data[1, 3] = temp;
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
Console.Write(data[i, j] + "\t");
Console.WriteLine();
}
}
}
}
/*
5 1 2 3
9 6 7 4
13 10 11 8
14 15 16 12
Press any key to continue . . .
*/

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧