⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_19824.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:19824 发表者:moonbird 发表日期:2002-10-31 17:34:30
<br>主题:请教8皇后问题
<br>内容:我初学tc,问:<BR>首先是一个全排列问题:怎样把1,2,3,4,5,6的全排列输出??<BR><BR>与之类似的问题:在8*8的棋盘上如何放8个皇后,互相吃不到???<BR><BR>谢谢指教 
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:yl02502 回复日期:2002-10-31 20:01:35
<br>内容:第一个问题可以用递归的方法做。<BR>第二个问题:某一个皇后(X,Y)的控制范围为A[X][]、A[][Y]、A[X+ -i][Y+ -i],用栈来实现寻找。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:moonbird 回复日期:2002-11-01 09:27:59
<br>内容:还是有些不明白。递归的方法是指用6个for语句来循环吗?能具体点吗?还有第二个它斜线的控制范围是指[x++][y++]吧?[x+ -i][y+ -i]是什么意思呢?我没见过,能讲解一下吗?谢谢了哦。还有栈是什么东西?没学过,讲解一下吗?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 万分感谢!!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:逍遥 回复日期:2002-11-01 21:15:01
<br>内容:递归不是循环,是一个函数调用自身这个函数,例如这个简单的递归函数求n的皆乘y=1*2*3.......*(n-1)*n&nbsp;&nbsp;:<BR>main()<BR>{int y=n;<BR> y=JieCheng(n);<BR> printf(....y);<BR>}<BR><BR>int JieCheng(int n)<BR>{<BR>&nbsp;&nbsp;if(n&gt;1)<BR>&nbsp;&nbsp; return (n * JieCheng(n-1));&nbsp;&nbsp;&nbsp;&nbsp; /* 递归调用 JieCheng() */<BR>&nbsp;&nbsp;else<BR>&nbsp;&nbsp; return 1;<BR>}<BR><BR>这样很简单就可以求出n的皆乘了!<BR>例如n=3:<BR> 第一次调用函数,y = 3 * JieCheng(2)<BR> 其中JieCheng(2)又去求2的皆乘,结果: y= 3*2*JieCheng(1)<BR> 而由于条件n&gt;1所以JieCheng(1)不在往下递归,返回1<BR>&nbsp;&nbsp; 则 结果:y=3*2*1<BR><BR>全排列类似,第一位从1到6。当选1时,后5位就是2到6的全排列,其余类推。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:moonbird 回复日期:2002-11-01 22:02:34
<br>内容:那jiecheng(1)是怎么算的呢?要定义吧。<BR>谢谢呵<BR>我呆会试一试
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:逍遥 回复日期:2002-11-02 12:25:29
<br>内容:呵呵~~~~~~~<BR>你再仔细看看JieCheng(n)函数的定义,里面不是有当n=1时,返回函数值 1 的分支选择吗!!!<BR>&nbsp;&nbsp;if(n&gt;1)<BR>&nbsp;&nbsp; return (n * JieCheng(n-1));&nbsp;&nbsp;&nbsp;&nbsp; /* 递归调用 JieCheng() */<BR>&nbsp;&nbsp;else<BR>&nbsp;&nbsp; return 1;&nbsp;&nbsp;&nbsp;&nbsp;//当n=1时,这句起作用!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:moonbird 回复日期:2002-11-02 17:25:01
<br>内容:哦<BR>知道了<BR>大体明白递归是个什么意思了。<BR>不过说起来好像很简单,做起来就不知道怎么下手了。<BR>输出的是个排列,6个数。是不是要用到数组呀。<BR>可那又怎么递归呢<BR>能写一个片断吗?如果有时间的话。<BR>谢谢!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:yl02502 回复日期:2002-11-02 21:19:40
<br>内容:8皇后问题:用A[8][8]数组,如被皇后控制则=1,否则=0,试探放入一个皇后,将位置压栈,刷新A,试探放入第二个皇后...,如没位置放,则弹出前一个,试探其他位置,...,注意,每一个皇后试探过的位置应保存,以免死循环。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:yl02502 回复日期:2002-11-02 21:39:03
<br>内容:排列问题:可以理解为7可以插入前6个数的某个排列从0~6的位置F7i=F(7,F6j,i),如此F6...F1
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:percy chaos 回复日期:2002-11-10 17:57:41
<br>内容:<BR>//***************************************************//<BR>//**&nbsp;&nbsp;&nbsp;&nbsp; 输出由 0,1,2,3,4,5,6组成的六位数字&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **// <BR>//**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;六位数字不同,0数字允许带头&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**//<BR>//**************************************************//<BR><BR>#include &lt;iostream.h&gt;<BR>#include &lt;math.h&gt;<BR>#include &lt;stdlib.h&gt;<BR>#include &lt;iomanip.h&gt;<BR><BR>void main()<BR>{<BR> cout&lt;&lt;" *** 运行结果 ***&nbsp;&nbsp;"&lt;&lt;endl&lt;&lt;endl;<BR> <BR>int i,j,k,l,m,n;&nbsp;&nbsp;//i-十万位 j-万位 k-千位 l-百位 m-十位 n-个位&nbsp;&nbsp; <BR> cout&lt;&lt;(" 十万 万 千 百 十 个\n");<BR>&nbsp;&nbsp; for(i=0;i&lt;7;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;7;j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(k=0;k&lt;7;k++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(l=0;l&lt;7;l++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(m=0;l&lt;7;m++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(n=0;l&lt;7;n++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i==j&&i==k&&i==l&&i==m&&i==n&&j==k&&j==l&&j==m&&j==n&&k==l&&k==m&&k==n&&l==m&&l==n&&m==n) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR> cout&lt;&lt;setw(2)&lt;&lt;i&lt;&lt;setw(3)&lt;&lt;j&lt;&lt;setw(3)&lt;&lt;k&lt;&lt;setw(3)&lt;&lt;l&lt;&lt;setw(3)&lt;&lt;m&lt;&lt;setw(3)&lt;&lt;n&lt;&lt;endl;&nbsp;&nbsp; <BR>}
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:xiongli 回复日期:2002-11-10 18:15:09
<br>内容:我给你一个求任意全排列的<BR><BR><BR>define NUM&nbsp;&nbsp;&nbsp;&nbsp;6<BR>int nLevel=0,List[256]={0},ALL;<BR><BR>p()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int nCount,nJudge,key;<BR>&nbsp;&nbsp;&nbsp;&nbsp;nLevel++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(nLevel&gt;NUM)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nLevel--;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;for(nCount=1;nCount&lt;=NUM;nCount++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(nJudge=0;nJudge&lt;=nLevel-1;nJudge++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(nCount==List[nJudge])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key=1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(key==0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List[nLevel]=nCount;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>nLevel--;<BR>}<BR><BR>print()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int nCount;ALL++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(nCount=1;nCount&lt;=NUM;nCount++)printf("%d ",List[nCount]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;printf("\t%d\n",ALL);<BR>}<BR>main()<BR>{p();<BR>}<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:moonbird 回复日期:2002-11-11 11:26:44
<br>内容:thank you.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:small-rat 回复日期:2002-11-11 13:47:47
<br>内容:我只学过C,问一下这个SETW是什么函数.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -