所有数字都或一下就好了。肯定是最大的。
#include<stdio.h> #include<string.h> int n; long long a[1000+10]; long long b[1000+10]; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%lld",&a[i]); for(int i=1;i<=n;i++) scanf("%lld",&b[i]); long long num1=a[1],num2=b[1]; for(int i=2;i<=n;i++) { num1=num1|a[i]; num2=num2|b[i]; } printf("%lld ",num1+num2); return 0; }