论坛首页 编程语言技术论坛

求两个数高位相同的部分--算法由中国PHP联盟的vincent-武汉(282159887) 提供

浏览 2224 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-12  
C
算法题:
求两个数高位相同的部分。
比如
42443和42555,得42
74和75,得7
333222和333111,得333
750和75,得0

输入:两个数
输出:相同部分
===========
谁来试试



<script type="text/javascript" defer="defer">
$={
temp:"",
getHigh:function(f,s){
var f=String(f);
var s=String(s);
var len=f.length<s.length?f.length:s.length;
for(var i=0;i<len;i++){
if(f.charAt(i)==s.charAt(i)) this.temp+=f.charAt(i);
else break;
}
if(this.temp)
document.write(f+"和"+s+"的相同的部分最高位为:"+this.temp+"<br />");
else
document.write(f+"和"+s+"没有相同的部分!<br />");
this.temp="";
}

}

$.getHigh(42443,42555);
$.getHigh(74,75);
$.getHigh(333222,333111);
</script>

   发表时间:2008-10-12  

function get_same($n1,$n2){
     $s1=(string)$n1;
     $s2=(string)$n2;

   if (strlen($s1) < strlen($s2)) { // 如果S1长度比S2长度小,交换之,让S1为长的那个
   $tmp=$s2;
   $s2=$s1;
   $s1=$tmp;
   }


$len=strlen($s2);
for($i=1;$i<=$len;$i++){//用s2去检查s1
$sub=substr($s2,0,$i);
if(!strstr($s1,$sub))
         break;
}
 
  return   $i==$len  ?  "{$s1}与{$s2}没有相同的部分" : "{$s1}与{$s2}相同的部分是".substr($s2,0,$i-1);
}

print(get_same(42443,425556));
echo '<br>';
print(get_Same(333111,333222))
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics