華為OD機(jī)試-- 出錯(cuò)的或電路

題目
某生產(chǎn)門(mén)電路的廠商發(fā)現(xiàn)某一批次的或門(mén)電路不穩(wěn)定,具體現(xiàn)象為計(jì)算兩個(gè)二進(jìn)制數(shù)的或操作時(shí),第一個(gè)二進(jìn)制數(shù)中某兩個(gè)比特位會(huì)出現(xiàn)交換,
交換的比特位置是隨機(jī)的,但只交換這兩個(gè)位,其他位不變。
很明顯,這個(gè)交換可能會(huì)影響最終的或結(jié)果,也可能不會(huì)有影響。
為了評(píng)估影響和定位出錯(cuò)的根因,工程師需要研究在各種交換的可能下,最終的或結(jié)果發(fā)生改變的情況有多少種。
輸入描述:
第一行有一個(gè)正整數(shù)N;其中1≤N≤1000000。
第二行有一個(gè)長(zhǎng)為N的二進(jìn)制數(shù),表示與電路的第一個(gè)輸入數(shù),即會(huì)發(fā)生比特交換的輸入數(shù)。
第三行有一個(gè)長(zhǎng)為N的二進(jìn)制數(shù),表示與電路的第二個(gè)輸入數(shù)。注意第二個(gè)輸入數(shù)不會(huì)發(fā)生比特交換。
輸出描述:
輸出只有一個(gè)整數(shù),表示會(huì)影響或結(jié)果的交換方案?jìng)€(gè)數(shù)。
示例1? ?輸入輸出示例僅供調(diào)試,后臺(tái)判題數(shù)據(jù)一般不包含示例
輸入
3
010
110
輸出
1
說(shuō)明
原本010和110的或結(jié)果是110,但第一個(gè)輸入數(shù)可能會(huì)發(fā)生如下三種交換:
1.交換第1個(gè)比特和第2個(gè)比特,第一個(gè)輸入數(shù)變?yōu)?00,計(jì)算結(jié)果為110,計(jì)算結(jié)果不變
2.交換第1個(gè)比特和第3個(gè)比特,第一個(gè)輸入數(shù)變?yōu)?10,計(jì)算結(jié)果為110,計(jì)算結(jié)果不變
3.交換第2個(gè)比特和第3個(gè)比特,第一個(gè)輸入數(shù)變?yōu)?01,計(jì)算結(jié)果為111,計(jì)算結(jié)果改變
故只有一種交換會(huì)改變計(jì)算結(jié)果。
Java 實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/128104706
Python實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/128383496
C++ 實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/127291942
JavaScript實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/131972533
C實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/131004703