题目
翻译
题目
Shapur是个天才。他擅长于组合算术,代数,数论,几何,微积分等所有领域。他不仅聪明而且计算能力非常快!他可以在一秒内求出1018个数字的和。
公元230年的一天,Shapur想看看是否有比他计算还快的人。最终他举办了一场比赛并邀请了所有人参加。
比赛中,他会给参赛者提供多个不同的数字。每个数字都由0或1组成。参赛者必须写下一个与给出的数字相对应的新数字。规则很简单:新数字的第
i
i
i个数字为1的话当且仅当所给的2个数字的第
i
i
i个数字不同。否则为0。
Shapur准备了很多数字并且自己先尝试了一下。他发现他可以一下子就对
∞
∞
∞长度的数字进行完操作(数字长度即数字中数字的个数)。他总是能给出正确答案,所以他希望参赛者也能给出正确答案。他是一个好人,所以他不会给任何人很大的数字,并且他总是给他们相同长度的数字。
现在你要参加Shapur的比赛。看看你是不是比他更快。
输入
总共需要输入两行,每行为一个数字。可以保证每个数字都仅有0和1组成。数字可能为0开头。每个数字长度不超过100.
输出
输出正确结果,别漏了前导零。
分析
规则就是输出2个二进制数的异或结果。用字符串存数字,然后比较一下各个位就好。
代码
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char a[101];
char b[101];
cin >> a >> b;
int len = strlen(a);
for (int i = 0; i < len; i++)
{
a[i] = a[i] == b[i] ? '0' : '1';
}
cout << a;
}