功能说明
- int n:要考虑的最高数字
- int k:比较结果必须小于此数字才能考虑
样本输入0
5 4
样本输出0
2
3
3
代码解析
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
void calculate_the_maximum(int n, int k) {
int maxAnd = 0;
int maxOr = 0;
int maxXor = 0;
for (int i=1; i<=n; i++)
{
for (int j=i+1; j<=n; j++)
{
if (((i&j) > maxAnd) && ((i&j) < k)) {
maxAnd = i&j;
}
if (((i|j) > maxOr) && ((i|j) < k)) {
maxOr = i|j;
}
if (((i^j) > maxXor) && ((i^j) < k)) {
maxXor = i^j;
}
}
}
printf("%d
%d
%d
", maxAnd, maxOr, maxXor);
}
int main() {
int n, k;
scanf("%d %d", &n, &k);
calculate_the_maximum(n, k);
return 0;
}