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

📄 subject_38614.htm

📁 vc
💻 HTM
字号:
<p>
序号:38614 发表者:windtalker 发表日期:2003-05-04 22:33:21
<br>主题:初学者问,有兴趣的请进来看看
<br>内容:这期电脑报上的一个小题目,报上是用VB解的,我是VC初学者,大家能不能帮忙写出C或C++的代码啊?<BR><BR>警察老K遇到了一个难题,一辆卡车违反了交通规则,撞死了行人,司机畏罪逃走了,当时有三个有目击了这一车祸的发生,但都没有看清楚车号,只注意到了牌照号码的某些特征:<BR>甲:记得牌照的前两个数字是相同的;<BR>乙:记得牌照的后两个数字是相同的;<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>
回复者:qqwang 回复日期:2003-05-04 23:28:49
<br>内容:小生不才,随便编了个滥程序算了算,<BR>其实题目很简单,<BR>可能考虑的最重要的应该是算法的效率问题。<BR>7744<BR><BR>以下是程序代码:<BR>-------------------------------------------------------------<BR>#include &lt;iostream.h&gt;<BR>#include &lt;stdio.h&gt;<BR>struct FourBit<BR>{<BR> short n1,n2,n3,n4;<BR>};<BR><BR>void getBit(int num,FourBit* fourbit);<BR><BR>int main()<BR>{<BR>&nbsp;&nbsp;int i,j,num;<BR>&nbsp;&nbsp;FourBit* fourbit;<BR>&nbsp;&nbsp;cout&lt;&lt;"Result"&lt;&lt;endl;<BR>&nbsp;&nbsp;for(i=1;i&lt;100;i++)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp; num=i*i;<BR>&nbsp;&nbsp; getBit(num,fourbit);<BR>&nbsp;&nbsp; if(fourbit-&gt;n1==fourbit-&gt;n2&amp;&amp;fourbit-&gt;n3==fourbit-&gt;n4)<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"i="&lt;&lt;i&lt;&lt;endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"Car Number:"&lt;&lt;fourbit-&gt;n1&lt;&lt;fourbit-&gt;n2&lt;&lt;fourbit-&gt;n3&lt;&lt;fourbit-&gt;n4&lt;&lt;endl;<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;getchar();<BR>&nbsp;&nbsp;return 0;<BR>}<BR><BR>void getBit(int num,FourBit* fourbit)<BR>{<BR>&nbsp;&nbsp;fourbit-&gt;n1=num/1000;<BR>&nbsp;&nbsp;fourbit-&gt;n2=(num-fourbit-&gt;n1*1000)/100;<BR>&nbsp;&nbsp;fourbit-&gt;n3=(num-fourbit-&gt;n1*1000-fourbit-&gt;n2*100)/10;<BR>&nbsp;&nbsp;fourbit-&gt;n4=(num-fourbit-&gt;n1*1000-fourbit-&gt;n2*100-fourbit-&gt;n3*10);<BR>}<BR>------------------------------------------------------------------------------<BR>程序编的很滥,只是想算算.......见笑了....<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>
回复者:罗兹维尔 回复日期:2003-05-05 11:12:34
<br>内容:因为是四位数<BR>只需计算 31 到 99 就行了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:qqwang 回复日期:2003-05-05 21:56:33
<br>内容:车牌号的四位和整数的四位不一样啦。<BR>车牌第一位可以是0,<BR>比如说0025。。。。<BR>所以说,应该从1 4 9&nbsp;&nbsp;16。。。。。99^2
<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>回复者:trevor 回复日期:2003-05-06 14:01:46
<br>内容:可以先从第三个限制条件考虑,因为号码是一个整数的平方,而且后两位是同一个数字,所以后两位只能是“11,44,55,66,99,00”(没有哪个整数平方后的个位是2,3,7或8),而前两位还一样,所以可以通过最多60次运算来排查这个数(这是因为前两位有十种可能,后两位有六种可能。但从逻辑上考虑,不可能四位都一样,尽管这个条件题目没有给,所以最多运算次数是50)。剩下的问题就是考虑一个四位数是否是一个整数平方的算法(上面讲的运算次数就是这个算法的运算次数),其实很简单,把四位数开方,看结果是否为整数就行了。算法可以写成这样:<BR>#include &lt;math.h&gt;<BR>main(){<BR>int i,j,k,n,r;<BR>double q,p;<BR>int A[6];<BR>int B[6]={0,11,44,55,66,99};//后两位的六种可能性<BR>r=0;<BR>for(i=0;i&lt;10;i++)<BR>{<BR>&nbsp;&nbsp; j=i*1100;<BR>&nbsp;&nbsp; k=0;<BR>&nbsp;&nbsp; while((k&lt;6)&amp;&amp;(k!=i))//排除了四位相同的情况<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp; A[k]=j+B[k];<BR>&nbsp;&nbsp; q=A[k];<BR>&nbsp;&nbsp; printf("\nq=%f",q);<BR>&nbsp;&nbsp; p=sqrt(q);<BR>&nbsp;&nbsp; printf("\np=%f",p);<BR>&nbsp;&nbsp; n=(int)p;//对开方后的浮点型数据取整 <BR>&nbsp;&nbsp; if((p-n)==(float)0)<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp; printf("\nthe number is %d",A[k]);<BR>&nbsp;&nbsp; r=1;<BR>&nbsp;&nbsp; break;<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; else<BR>&nbsp;&nbsp; k=k+1;<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; if(r==1)//前面得到正确结果后置为1,然后跳出循环<BR>&nbsp;&nbsp; break;<BR>&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>
回复者:qqwang 回复日期:2003-05-06 20:00:38
<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>
回复者:罗兹维尔 回复日期:2003-05-08 08:51:19
<br>内容:1楼比4楼好
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:于小澍 回复日期:2003-05-08 09:43:51
<br>内容:其实就是一个数学问题,如果前两位是00的话那么后面只能是11,22<BR>,33,44,55,66,77,88,99<BR>明显都不符合吗!!(上面这位仁兄已经说明)所以只能是4位数<BR>我那c变了一段!请指教!!虽然很烂!!<BR> jingcha()<BR>{int i,n1,n2,n3,n4,num;<BR> for(i=31;i&lt;99;i++)<BR> { <BR>&nbsp;&nbsp; num=i*i;<BR>&nbsp;&nbsp; n1=num/1000;<BR>&nbsp;&nbsp; n2=num/100-n1*10;<BR>&nbsp;&nbsp;if(n1==n2)<BR>&nbsp;&nbsp;{ n3=num/10-n2*10;<BR>&nbsp;&nbsp; n4=num-n3*10:<BR>&nbsp;&nbsp;if(n3==n4)<BR>&nbsp;&nbsp;printf("The number is: %d\n",num);<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>
回复者:风雪神话 回复日期:2003-05-10 22:08:01
<br>内容:小弟不才,投机取巧编了一个,把0000这种情况也考虑进去了.<BR>#include&lt;iostream.h&gt;<BR>#include&lt;math.h&gt;<BR>void main()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int a[]={0,11,22,33,44,55,66,77,88,99},b;<BR>&nbsp;&nbsp;&nbsp;&nbsp;double c;int i,j;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;=9;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt;=9;j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//if(i==0||j==0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;continue;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{b=a[i]*100+a[j];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c=sqrt(b);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int d=(int)(c*1000);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(d%1000==0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;b&lt;&lt;endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"是"&lt;&lt;c&lt;&lt;"的平方"&lt;&lt;endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}}<BR>}<BR>2003-5-10 22:09:19

⌨️ 快捷键说明

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