C程序找出小于给定值的AND、OR和XOR运算的最大值
假设我们有两个整数k和n。我们的任务是执行三个操作;范围n以内的所有数字对之间的按位与、按位或和按位异或。我们返回小于给定值k的任意两对数字之间所有三个操作的最大值。
所以,如果输入像n=5,k=5,那么输出将是434。
所有小于5的数对之间的AND、OR和XOR运算的最大值分别为4、3和4。我们可以看到,这些操作的值都小于给定值k的值,即5。
示例
让我们看看以下实现以获得更好的理解-
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
void solve(int n, int k) {
int andMax = 0, orMax = 0, xorMax = 0;
int value1 = 0, value2 = 0, value3 = 0;
for (int i = 1; i <= n; i++) {
for (int j = i+1; j <= n; j++) {
value1 = i & j;
value2 = i | j;
value3 = i ^ j;
if (value1 > andMax && value1 < k)
andMax = value1;
if (value2 > orMax && value2 < k)
orMax = value2;
if (value3 > xorMax && value3 < k)
xorMax = value3;
}
}
printf("%d %d %d ", andMax, orMax, xorMax);
}
int main() {
solve(5, 5);
return 0;
}输入
5, 5输出结果
4 3 4
热门推荐
5 庆双节祝福语简短
10 开学新人祝福语简短英语
11 学生开学季祝福语简短
12 新春进门祝福语大全简短
13 文艺结婚祝福语短语简短
14 中式蛋糕开业祝福语简短
15 诗词文案祝福语简短精辟
16 入学祝福语简短走心
17 虎年送火腿祝福语简短
18 聚餐朋友喝酒祝福语简短