喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 帮助

RSS 订阅当前论坛  

喜悦证交所已经关闭

上一主题 下一主题
 14  1/2  1  2  > 
     
标题: [问题] 一道位运算的题  
 
Jit
新手上路
Rank: 1



UID 78950
精华 0
积分 49
帖子 42
金钱 49 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-8-24
状态 离线
[广告]: q m
一道位运算的题

假如有一个很长的字符串,但是长度是有限个:

101000010011100101011010101000111011010101001010010100100101010010101010010100100111..................

要求用最快的算法算出来其中有多少个1

谁可以给出一个好的算法?

[ 本帖最后由 Jit 于 2007-9-12 08:19 PM 编辑 ]
2007-9-12 08:12 PM#1
查看资料  发短消息  顶部
 
wzhu (wzhu)
版主
Rank: 7Rank: 7Rank: 7
C[A-Z]O


UID 68040
精华 0
积分 74222
帖子 1611
金钱 74164 喜悦币
威望 0
人脉 58
阅读权限 100
注册 2006-1-14
来自 湖北荆州>陕西西安>辽宁 ...
状态 离线
[推荐阅读] 诚聘PHP高手合作,汽配行业网站项目
$a = "101000010011100101011010101000111011010101001010010100100101010010101010010100100111";
$num = 0;
for( $i = 0, $l = strlen($a); i<l;i++ ){
     $num += $a[ i ];
}




<?wzhu
wzhu.print("http://www.cncmm.com");
?>
2007-9-12 08:23 PM#2
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
wzhu (wzhu)
版主
Rank: 7Rank: 7Rank: 7
C[A-Z]O


UID 68040
精华 0
积分 74222
帖子 1611
金钱 74164 喜悦币
威望 0
人脉 58
阅读权限 100
注册 2006-1-14
来自 湖北荆州>陕西西安>辽宁 ...
状态 离线
[推荐阅读] 是男人就不流泪
$a = "101000010011100101011010101000111011010101001010010100100101010010101010010100100111";
$a = bindec( $a );
$num = 0;
while( $a > 0 ){
     $a =$a >> 1;
     $num++;
}




<?wzhu
wzhu.print("http://www.cncmm.com");
?>
2007-9-12 09:17 PM#3
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
wzhu (wzhu)
版主
Rank: 7Rank: 7Rank: 7
C[A-Z]O


UID 68040
精华 0
积分 74222
帖子 1611
金钱 74164 喜悦币
威望 0
人脉 58
阅读权限 100
注册 2006-1-14
来自 湖北荆州>陕西西安>辽宁 ...
状态 离线
[推荐阅读] 宁愿给日__本人干活,也别给狗汉奸干活


QUOTE:
原帖由 wzhu 于 2007年9月12日 21:17 发表
$a = "101000010011100101011010101000111011010101001010010100100101010010101010010100100111";
$a = bindec( $a );
$num = 0;
while( $a > 0 ){
     $a =$a >> 1;
     $num++;
}
更正,

$a = "101000010011100101011010101000111011010101001010010100100101010010101010010100100111";
$a = bindec( $a );
$num = 0;
while( $a > 0 ){
     if( $a %2 == 1 ){
          $num++;
    }
     $a =$a >> 1;
}
print $num;




<?wzhu
wzhu.print("http://www.cncmm.com");
?>
2007-9-12 11:34 PM#4
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
ttt8com
中级会员
Rank: 3Rank: 3
中级会员



UID 14544
精华 0
积分 262
帖子 256
金钱 262 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2002-5-27
状态 离线
[推荐阅读] 怎么能得到 mtid,
$str = "101000010011100101011010101000111011010101001010010100100101010010101010010100100111";
echo substr_count($str, '1');

可以吗?




QQ 922710
2007-9-12 11:50 PM#5
查看资料  发短消息  QQ  顶部
 
圣斗士的信仰
注册会员
Rank: 2



UID 84775
精华 0
积分 74
帖子 76
金钱 74 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-12-13
状态 离线
[推荐阅读] 欢迎加入PHP开发者新手群 : 2153698
while(isset($str{$i})){if($str{$i}==1)$j++;$i++;}echo$j;
2007-9-13 02:46 PM#6
查看资料  发短消息  顶部
 
圣斗士的信仰
注册会员
Rank: 2



UID 84775
精华 0
积分 74
帖子 76
金钱 74 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-12-13
状态 离线
[推荐阅读] 欢迎加入PHP开发者新手群 : 2153698
$str="11101010101010101010101010101";
2007-9-13 02:47 PM#7
查看资料  发短消息  顶部
 
圣斗士的信仰
注册会员
Rank: 2



UID 84775
精华 0
积分 74
帖子 76
金钱 74 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-12-13
状态 离线
[推荐阅读] 欢迎加入PHP开发者新手群 : 2153698
不用任何数组和字符串函数。嘿~`
2007-9-13 02:49 PM#8
查看资料  发短消息  顶部
 
sunceenjoy
中级会员
Rank: 3Rank: 3
初级会员


UID 68584
精华 0
积分 262
帖子 249
金钱 262 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-2-13
状态 离线
[推荐阅读] 155免费电影最新更新
回复 #5 ttt8com 的帖子



QUOTE:
原帖由 ttt8com 于 2007-9-12 11:50 PM 发表
$str = "101000010011100101011010101000111011010101001010010100100101010010101010010100100111";
echo substr_count($str, '1');

可以吗?
我想没有比这个更好的了。

[ 本帖最后由 sunceenjoy 于 2007-9-13 04:16 PM 编辑 ]
2007-9-13 04:14 PM#9
查看资料  Blog  发短消息  顶部
 
sunceenjoy
中级会员
Rank: 3Rank: 3
初级会员


UID 68584
精华 0
积分 262
帖子 249
金钱 262 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-2-13
状态 离线
[推荐阅读] 关于下拉列表的 初始值设置?
strlen(implode('',preg_split('/0+/',$str)))
2007-9-13 04:15 PM#10
查看资料  Blog  发短消息  顶部
 14  1/2  1  2  > 
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.025012 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP