題目描述
異或運算是常見的二進制運算,給出兩個n位二進制數a,b。a異或b的運算依次考慮二進制的每一位,若這一位相同,那麼這一位的異或結果就是0,不同就是1。
例如a=1100, b=0100。執行a異或b的運算,a的最高位是1,b的最高位是0,兩個數字不同是以最高位異或結果是1;a和b次高位都是1,是以次高位異或為0;最後兩位它們都是0,是以異或結果也都是0。那麼a異或b的答案就是1000。
現在輸入兩個n位二進制數,輸出它們異或結果的十進制答案。上述樣例中異或的二進制結果為1000,轉化成十進制就是8。
輸入 輸入有三行,第一行一個數n(1<=n<=20),接下來兩行有兩個n位二進制數。輸入的二進制數可能有前導零。 | 樣例輸入 4 1100 0100 |
輸出 輸出一個數,異或結果的十進制數值,不要輸出前導零。 | 樣例輸出 8 |
題目很簡單,直接上代碼:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
String str1 = sc.next();
String str2 = sc.next();
int x = Integer.parseInt(str1, 2); //将二進制的str1轉換成十進制
int y = Integer.parseInt(str2, 2);
System.out.println(x ^ y);
}
}
}