天天看點

京東筆試-異或

題目描述
									


異或運算是常見的二進制運算,給出兩個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);

		}
	}
}
           

繼續閱讀