1.3按位AND和按位OR
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
已知長度爲n的兩個位串a和b,求它們的按位AND和按位OR。
Input
多組測試數據,每組測試數據第1行輸入位串長度n(0 < n <= 64),第2行輸入n個以空格隔開的取值爲0或1的整數表示位串a,第3行輸入n個以空格隔開的取值爲0或1的整數表示位串b。
Output
每組測試數據佔兩行,第一行輸出n個以空格隔開的取值爲0或1的整數表示a位串和b位串的按位AND,第2行輸出n個以空格隔開的取值爲0或1的整數表示a位串和b位串的按位OR。
Sample Input
5 1 0 0 1 0 0 0 0 1 1
Sample Output
0 0 0 1 0 1 0 0 1 1
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
int a[65], b[65];
int main()
{
int n, i;
while(cin >> n)
{
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
for(i = 1; i <= n; i++)
{
cin >> a[i];
}
for(i = 1; i <= n; i++)
{
cin >> b[i];
}
for(i = 1; i <= n; i++)
{
if(a[i] == 1 && b[i] == 1)
{
if(i == 1) printf("1");
else printf(" 1");
}
else
{
if(i == 1) printf("0");
else printf(" 0");
}
}
cout << endl;
for(i = 1; i <= n; i++)
{
if(a[i] == 0 && b[i] == 0)
{
if(i == 1) printf("0");
else printf(" 0");
}
else
{
if(i == 1) printf("1");
else printf(" 1");
}
}
cout << endl;
}
return 0;
}