~~~~~急急急急急急急~~~~~~~~~面试题目,有点晕

woolcool 2008-01-05 12:12:17
今天去面试,公司不大却考了一个难度不小的题:
九宫方图
给你一个奇数,例如3
生成如下表格
8 1 6
3 5 7
4 9 2
例如5
生成如下表格
17 25 1 8 15
24 5 7 14 16
4 6 13 20 23
10 12 19 22 3
11 18 21 2 9


请高手实现用C#的编码,郁闷一上午了
歇菜了,没弄出来

用C#实现的代码请赐教;
...全文
103 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ojekleen 2008-01-05
  • 打赏
  • 举报
回复
public static int[,] getArrayNumber(int readNumber)
{
int maxNumber = readNumber * readNumber;
int [,] arrNumber=new int[readNumber,readNumber];
int column = readNumber / 2;
int row = 0;
for (int i = 1; i <= maxNumber; i++)
{
if (row < 0)
{
row = readNumber - 1;
if (column > readNumber - 1)
{
column = 0;
if (arrNumber[row, column] != 0)
{
row =1;
column = readNumber - 1;
}
}
else
{
if (arrNumber[row, column] != 0)
{
row = 1;
}
}
}
else if (column > readNumber - 1)
{
column = 0;
if (arrNumber[row, column] != 0)
{
row = row + 2;
if (row > readNumber-1)
{
row = 0;
}
column = readNumber - 1;
}
}
else
{
if (arrNumber[row, column] != 0)
{
row = row + 2;
if (row > readNumber-1)
{
row = 0;
}
column = column - 1;
if (column < 0)
{
column = readNumber-1;
}
}
}

arrNumber[row, column] = i;
row--; column++;
}
return arrNumber;
}
LeoMaya 2008-01-05
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20020507/23/704216.html
eyesinbook 2008-01-05
  • 打赏
  • 举报
回复
不是很复杂,9宫图算法只在奇数时才有解。
先获取奇数(判断以下用户输入的是不是奇数,不是就直接中断)
根据用户输入的奇数创建一个二维数组,里面的所有元素初始置0。把第一行中间的数置1,然后向右上方的顺序置2,3,4,5,6,7……碰到上边就往下翻,碰到右边就往左翻;碰到不为0的数时就往下方移一位,然后继续向右上……,如果下方的数也不为0,那就跳出循环。(不难理解吧?)
最后把这个数组显示出来就可以了。
代码不是很难,懒的写了,楼主自己写写吧,HOHO。
注意:怎么简单怎么写。这题蛮考逻辑思维能力的,就是考法有点老了。

110,538

社区成员

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

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

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