题目描述
输入:
三行数据,
n //二进制的位数
1101 //类似这样的二进制数
0011
输出:
14 //经过异或运算之后的十进制数
解题思路
#include <iostream>
using namespace std;
//计算2^(n)
int get(int n)
{
int m = 1;
for (int i = n; i>0; i--)
{
m *= 2;
}
return m;
}
int main()
{
int n;
cin >> n;
char num1[25];//存储二进制字符
char num2[25]; //存储二进制字符
char num[25]; //存储异或结果
cin >> num1;
cin >> num2;
for (int i = 0; i<n; i++)
{
if (num1[i] == num2[i])
{
num[i] = '0';
}
else
num[i] = '1';
}
num[n] = '\0'; //使字符串到此结束
int res = 0;//存二进制转十进制结果
for (int i = 0; i<n; i++)
{
res += (num[i] - '0')*get(n - i-1);
}
cout << res << endl;
return 0;
}