第一题想到个方法,用纯真值表和位运算做,考虑单个位置: 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++
隔壁刷到的,请问几年前真的是这样吗
智能搬砖:21年已经有点难了,后面越来越难,主要是入行的卷王太多了,前几年培训机构搞宣传火了一波,像张雪峰有两年都在推计算机,进去的几百万卷王还没毕业呢,起码还要再卷五六年,到时候估计大厂就只要985了,211也得来跟我们卷外包了😂
我的秋招日记
点赞 评论 收藏
分享
08-08 16:33
唐山学院 Java
职场水母:首先,简历太长,对于实习和应届找工作,hr一眼扫的是学历,技术看实习,你写的技术栈字太多了,尽量用一句话概括不用写那么详细,技术面的时候会问的,而且技术栈都会在实习或者项目里体现,你要做的是,把你的简历浓缩为一页,删除没用的东西,比如实践经历,自我评价,这些纯废话,没用,专业技能写的太离谱,你真的熟练掌握了吗,建议都写熟悉,找工作和写论文不一样,追求的是干练和实用,把实习经历和项目提前,把掌握的技术栈写到最后,然后去找实习,
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务