牛客网(剑指offer) 第十一题 二进制中1的个数
生活随笔
收集整理的這篇文章主要介紹了
牛客网(剑指offer) 第十一题 二进制中1的个数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述: ? 輸入一個(gè)整數(shù),輸出該數(shù)二進(jìn)制表示中1的個(gè)數(shù)。其中負(fù)數(shù)用補(bǔ)碼表示。
<?php function NumberOf1($n) { $count = 0;for($i = 0;$i <32;$i++){if(($n >> $i) & 1){$count++;}}return $count; }//另一種思路 ? 但是沒做出來
function NumberOf1($n) {//如果是0,直接返回0if($n==0){return 0;}//如果是整數(shù),用函數(shù)if($n>0){$res=decbin($n);var_dump($res);exit();/*將二進(jìn)制轉(zhuǎn)換成字符串$str=strval($res);*///匹配/*$result=substr_count($res,'1');return $result;}*///如果是負(fù)數(shù)/* if($n<0){$a=abs($n);//取絕對(duì)值$b=decbin(~$a);//按位取反 //if($b==)$c=strlen($b);var_dump($b);exit();//字符串翻轉(zhuǎn)$d=strrev($b);//字符串轉(zhuǎn)換成數(shù)組$e=str_split($d);//echo $e[0];exit();$flag=1;for ($i=0; $i < $c; $i++) { if($e[$i]==1){if($flag==1){$e[$i]=0;$flag=1;}}if($e[$i]==0){if($flag==1){$e[$i]=1;$flag=0;}}}//再講數(shù)組轉(zhuǎn)換成字符串$f=implode("", $e);//在此將字符串翻轉(zhuǎn)回來$res=strrev($f);$result=substr_count($res,'1');return $result;} }總結(jié)
以上是生活随笔為你收集整理的牛客网(剑指offer) 第十一题 二进制中1的个数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客网(剑指offer) 第十题
- 下一篇: 牛客网(剑指offer) 第十二题 数值