C程序找出小于给定值的AND、OR和XOR运算的最大值

假设我们有两个整数 k 和 n。我们的任务是执行三个操作;范围 n 以内的所有数字对之间的按位与、按位或和按位异或。我们返回小于给定值 k 的任意两对数字之间所有三个操作的最大值。

所以,如果输入像 n = 5, k = 5,那么输出将是 4 3 4。

所有小于 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

以上是 C程序找出小于给定值的AND、OR和XOR运算的最大值 的全部内容, 来源链接: utcz.com/z/335425.html

回到顶部