社区
ASP
帖子详情
上周面试遇到的几个问题,与大家分享!
orrin
2003-04-14 03:19:40
1、 4个棋子,放在4x4的棋盘上,让斜、横、竖最多只有一个棋子的摆法有多少种?
2、 5封信,5个信封,假设一个信封只能装一封信,问有多少种完全装错的可能?
3、 用一句sql语句找出表td customer中的主关键字段。
...全文
73
5
打赏
收藏
上周面试遇到的几个问题,与大家分享!
1、 4个棋子,放在4x4的棋盘上,让斜、横、竖最多只有一个棋子的摆法有多少种? 2、 5封信,5个信封,假设一个信封只能装一封信,问有多少种完全装错的可能? 3、 用一句sql语句找出表td customer中的主关键字段。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
心云意水
2003-04-14
打赏
举报
回复
第一个问题:2种。纠正一下:是四王后,不是八个:)
程序实现:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>四皇后算法演示</TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<style>
TD{padding-left: 12px; background-color: white}
</style>
</HEAD>
<BODY>
<!-- 棋盘布局 -->
<table id="h_Board" border="0" style="background-color:#336699">
<tr>
<td> </td><td> </td><td> </td><td> </td>
</tr>
<tr>
<td> </td><td> </td><td> </td><td> </td>
</tr>
<tr>
<td> </td><td> </td><td> </td><td> </td>
</tr>
<tr>
<td> </td><td> </td><td> </td><td> </td>
</tr>
</table>
<BR>
<table id="h_MakeTabBox">
<tr>
</tr>
</table>
<BR>
<SCRIPT LANGUAGE="JavaScript">
<!--
var aoPlayList = new Array(); // 演示动作播放表
var aoMakeTab = new Array(); // 有效棋盘 完成的帧
var iPlayFrame = 0; // 播放帧
var iMakeTab = 0;
function fnRunBoard(v_iRow, v_iCount)
{
var t_aoOne;
if(v_iRow >= v_iCount)
aoMakeTab[aoMakeTab.length] = aoPlayList.length -1;
else
{
for(i=0; i < v_iCount; i++)
{
//alert("判断到 i:"+i);
t_aoOne = fnAddOne(v_iRow, i); // 加入播放表--放置棋子,并返回 [row,cell] 的数组
if( fnCanNext(t_aoOne, v_iCount) ) // 如果符合要求,则进行下一行的布置
{
//alert("通过 r:"+t_aoOne[0]+" c:"+t_aoOne[1]);
fnRunBoard(v_iRow+1, v_iCount);
}
else
{
//alert("不通过 r:"+t_aoOne[0]+" c:"+t_aoOne[1]);
}
fnDeleteOne(v_iRow, t_aoOne[1]); // 加入播放列表--移除棋子
i = t_aoOne[1];
}
}
}
//
// 放置棋子 fnAddOne
//
function fnAddOne(v_iRow, v_iCell)
{
var t_aoArray = new Array(v_iRow, v_iCell);
aoPlayList[aoPlayList.length] = "A|"+v_iRow+"|"+v_iCell; // 加入到动作播放列表
try
{
h_Board.rows[v_iRow].cells[v_iCell].title = "H"; // 在对应的单元格内放置标志,用于判断
}
catch(e)
{
return alert("R "+ v_iRow+ " C " + v_iCell);
}
return t_aoArray;
}
//
// 移除棋子 fnDeleteOne
//
function fnDeleteOne(v_iRow, v_iCell)
{
aoPlayList[aoPlayList.length] = "D|"+v_iRow+"|"+v_iCell; // 加入到动作播放列表
h_Board.rows[v_iRow].cells[v_iCell].title = ""; // 移除在对应的单元格内标志,用于判断
}
//
// 判断是否可以进行下一步 fnCanNext
//
function fnCanNext(v_aoOne, v_iCount)
{
var t_iCount;
var t_r, t_c;
// 判断行
for(t_iCount=0,i=0; i<v_iCount; i++)
{
if(h_Board.rows[ v_aoOne[0] ].cells[i].title == "H")
t_iCount++;
}
if(t_iCount > 1) return false;
// 判断列
for(t_iCount=0,i=0; i<v_iCount; i++)
{
if(h_Board.rows[i].cells[ v_aoOne[1] ].title == "H")
t_iCount++;
}
if(t_iCount > 1) return false;
// 判断下斜
t_iCount = 1;
t_r = v_aoOne[0];
t_c = v_aoOne[1];
while(--t_r+1 && --t_c+1)
if(h_Board.rows[t_r].cells[t_c].title == "H")
t_iCount++;
t_r = v_aoOne[0];
t_c = v_aoOne[1];
while(++t_r<v_iCount && ++t_c<v_iCount)
if(h_Board.rows[t_r].cells[t_c].title == "H")
t_iCount++;
if(t_iCount > 1) return false;
// 判断上斜
t_iCount = 1;
t_r = v_aoOne[0];
t_c = v_aoOne[1];
while(--t_r+1 && ++t_c<v_iCount)
if(h_Board.rows[t_r].cells[t_c].title == "H")
t_iCount++;
t_r = v_aoOne[0];
t_c = v_aoOne[1];
while(++t_r<v_iCount && --t_c+1)
if(h_Board.rows[t_r].cells[t_c].title == "H")
t_iCount++;
if(t_iCount > 1) return false;
return true;
}
//
// 播放动作列表
//
function fnPlayList()
{
var t_aoArray;
if(iPlayFrame+1 <= aoPlayList.length)
{
t_aoArray = aoPlayList[iPlayFrame++].split("|");
if(t_aoArray[0]=="A")
h_Board.rows[ parseInt(t_aoArray[1]) ].cells[ parseInt(t_aoArray[2])].style.backgroundColor = "yellow";
else
h_Board.rows[ parseInt(t_aoArray[1]) ].cells[ parseInt(t_aoArray[2])].style.backgroundColor = "";
if(iMakeTab < aoMakeTab.length && iPlayFrame - 1 == aoMakeTab[iMakeTab])
{
iMakeTab++;
h_MakeTabBox.rows[0].insertCell().innerHTML = h_Board.outerHTML.replace(/h_Board/,"0");
}
}
else
return;
setTimeout("fnPlayList()", 100);
}
function BeginGame()
{
fnRunBoard(0, 4);
iPlayFrame = 0;
fnPlayList();
h_PlayBtn.disabled = true;
}
//-->
</SCRIPT>
<INPUT TYPE="submit" value="分析并演示" name="h_PlayBtn" onclick="BeginGame()" >
</BODY>
</HTML>
wanghui0380
2003-04-14
打赏
举报
回复
呵呵,第一个问题是很早以前的初中计算机奥赛的题目愿是八王后在国际象棋棋盘上的摆法,很简单的循环加判断就行了。第二个问题是组合题应该是:全部的可能-全装正确的可能。最后那个只不过是一比较负扎的sql语句嘛
xiwanghope
2003-04-14
打赏
举报
回复
晕,如果进这个公司它给多少钱?赫赫
holywars
2003-04-14
打赏
举报
回复
找本算法的书看看吧!!
jason2008
2003-04-14
打赏
举报
回复
哇噻
上周
,XX保险
面试
,凉了!!!
上周
,一位群里的朋友去平安保险
面试
了,结果有些遗憾,蛮可惜的,但希望你不要气馁,正如你所说的,
面试
中
遇到
的
问题
,基本上都是可以通过背
面试
题解决的,所以请加油!另外,有
问题
欢迎随时找我探讨,共同进步。不...
上周
刚
面试
回来,献给程序员们一份“热腾腾”的面经
分享
(写于拿到offer的24小时内)!
首先介绍一下我的
面试
经历,
上周
花了一周的时间,
面试
了5家公司,拿到两个offer,这篇
面试
分享
是在拿到第二个offer的当天晚上写的。 由于时间相隔较短,所以
面试
大部分内容都记得,我就单刀直入直接写一下我的
面试
...
分享
几个
Android的
面试
经历
一个Android菜鸟“面霸”的
面试
经历
分享
今天是我入职一个创业公司的第二天。由于公司今天才把自己用的电脑买回来,只好今天在做着每一个技术人员入职第一天常做的事:安装相关开发软件,配置开发环境。 ...
奇葩的java
面试
问题
_聊聊我
面试
过的一个最奇葩的 Java 程序猿!
上周
我聊了聊最让我反感的 10 种程序猿,无奈一个小时就进行了删除,详细原因就不说了,容易招黑。今天聊的我
面试
过的最奇葩的一个程序猿,绝对是奇葩中的奇葩,简直是程序猿中的另类,最让我反感的程序猿又添加新...
想学IT的必看!实战讲述Flutter跨平台框架应用,
分享
一点
面试
小经验
一个Android开发的朋友跟我谈他
面试
经历,
上周
去爱奇艺
面试
,其他
问题
都答得不错,
面试
官问了一个哈夫曼算法的题没答出来,后来
面试
官很明确的说,我们还是想找一个会些算法基础的。 如果之前有学过数据结构和算法...
ASP
28,390
社区成员
357,068
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章