题目描述 :
现在输入两个n位二进制数,输出它们异或结果的十进制答案。上述样例中异或的二进制结果为1000,转化成十进制就是8。
输入:
输入有三行,第一行一个数n(1<=n<=20),接下来两行有两个n位二进制数。输入的二进制数可能有前导零。
输出
输出一个数,异或结果的十进制数值,不要输出前导零。
样例输入
4
1100
0100
输出:异或的十进制结果。
其实很无脑,把数值转成十进制直接用异或来算就行。
#include<bits/stdc++.h> using namespace std; char s[100]; int getnum(int n){ int ans = 0; for(int i = 0; i < n; i++){ ans *= 2; ans += s[i] - ‘0‘; } return ans; } int main(){ int n; scanf("%d", &n); scanf("%s", s); int a = getnum(n); scanf("%s", s); int b = getnum(n); printf("%d\n", a ^ b); return 0; }
时间: 2024-10-14 17:57:24