按位运算符

功能说明

  • 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\n%d\n%d\n", maxAnd, maxOr, maxXor);
}

int main() {
              int n, k;

             scanf("%d %d", &n, &k);
             calculate_the_maximum(n, k);

            return 0;
}

posted @ 2020-12-05 15:49  堕落的黑天使  阅读(95)  评论(0编辑  收藏  举报