关注
第一题想到个方法,用纯真值表和位运算做,考虑单个位置:
a=1,b=1 c=0需要两次 c=1不需要
a=0,b=1 c=0需要一次 c=1不需要 (同a=1,b=0)
a=0,b=0 c=0不需要 c=1需要一次
因为位运算没有2,所以拆成两个数计算次数
举例d=(a^c)&(b^c)
a=1,b=1 c=0,d=1 c=1,d=0
a=0,b=1 c=0,d=0 c=1,d=0 (同a=1,b=0)
a=0,b=0 c=0,d=0 c=1,d=1
e同理,
a=1,b=1 c=0,e=1 c=1,e=0
a=0,b=1 c=0,e=1 c=1,e=0 (同a=1,b=0)
a=0,b=0 c=0,e=0 c=1,e=0
不要觉得d、e奇怪,使用ac、bc真值表凑的
public Integer cal(Integer a,Integer b,Integer c) {
int ab = a|b,counter=0,
d=(a^c)&(b^c),lastD,
e=(ab)^c&(ab),lastE;
while(d!=0){
lastD = d % 2;
if(lastD==1)
counter++;
d = d >> 1;
}
while(e!=0){
lastE = e % 2;
if(lastE==1)
counter++;
e = e >> 1;
}
return counter;
}
没验证过其他的,可以帮我测一下
查看原帖
点赞 评论
相关推荐
09-11 10:30
门头沟学院 C++ 
点赞 评论 收藏
分享
点赞 评论 收藏
分享
08-08 16:33
唐山学院 Java 
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 从顶到拉给所有面过的公司评分 #
9220次浏览 96人参与
# 晒晒你的中秋福利 #
14520次浏览 87人参与
# 为了求职,我做过的疯狂伪装 #
9785次浏览 145人参与
# 机械人春招想让哪家公司来捞你? #
356629次浏览 3102人参与
# 职场破冰,你们都聊什么? #
5285次浏览 56人参与
# 工作压力大怎么缓解 #
104511次浏览 1047人参与
# 机械人怎么评价今年的华为 #
208349次浏览 1524人参与
# 广联达求职进展汇总 #
10462次浏览 50人参与
# 你面试被问到过哪些不会的问题? #
17292次浏览 680人参与
# bilibili求职进展汇总 #
82825次浏览 764人参与
# 聊聊这家公司值得去吗 #
551221次浏览 3673人参与
# 实习要如何选择和准备? #
114277次浏览 1436人参与
# 秋招报数:你投了多少家公司? #
24809次浏览 248人参与
# 电网笔面经互助 #
46214次浏览 428人参与
# 你觉得早上几点上班合适? #
82111次浏览 329人参与
# 秋招的嫡长offer #
23110次浏览 207人参与
# 上班摸鱼,你都在干些什么? #
5636次浏览 93人参与
# 机械笔面试考察这些知识点 #
10174次浏览 89人参与
# 浪潮求职进展汇总 #
16316次浏览 131人参与
# 上班后和你想的一样吗? #
78941次浏览 629人参与