关注
第一题想到个方法,用纯真值表和位运算做,考虑单个位置:
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;
}
没验证过其他的,可以帮我测一下
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客吐槽大会 #
26736次浏览 327人参与
# 一份好的简历长什么样? #
23249次浏览 427人参与
# 材料专业就业可以去哪些企业岗位 #
55062次浏览 379人参与
# 为了减少AI幻觉,你注入过哪些设定? #
8263次浏览 222人参与
# 招聘要求与实际实习内容不符怎么办 #
166261次浏览 922人参与
# 在大厂上班是一种什么样的体验 #
16149次浏览 227人参与
# 机械人避雷的岗位/公司 #
45171次浏览 321人参与
# 你的mentor是什么样的人? #
51771次浏览 742人参与
# 论秋招对个人心气的改变 #
17064次浏览 256人参与
# 我和mentor的爱恨情仇 #
106876次浏览 970人参与
# 秋招落幕,你是He or Be #
54754次浏览 620人参与
# 牛客AI体验站 #
10127次浏览 235人参与
# 程序员找工作至少要刷多少题? #
25404次浏览 320人参与
# 制造业的秋招小结 #
142338次浏览 2086人参与
# 运营人的第一份offer应该如何选 #
219214次浏览 1261人参与
# 本周投递记录 #
842481次浏览 12226人参与
# 晒晒你司的新年福利 #
10836次浏览 192人参与
# 应届生进小公司有什么影响吗 #
119114次浏览 1162人参与
# AI Coding的使用心得 #
6832次浏览 142人参与
# 一张图晒一下你的AI员工 #
6982次浏览 153人参与
深信服公司福利 902人发布