组合题5 个小题
已作答 0 / 5
1#include <iostream>2using namespace std;3 4const int N = 1000;5int c[N];6 7int logic(int x, int y) {8 return (x & y) ^ ((x ^ y) | (~x & y));9}10 11void generate(int a, int b, int *c) {12 for (int i = 0; i < b; i++)13 c[i] = logic(a, i) % (b + 1);14}15 16void recursion(int depth, int *arr, int size) {17 if (depth <= 0 || size <= 1) return;18 int pivot = arr[0];19 int i = 0, j = size - 1;20 while (i <= j) {21 while (arr[i] < pivot) i++;22 while (arr[j] > pivot) j--;23 if (i <= j) {24 int temp = arr[i];25 arr[i] = arr[j];26 arr[j] = temp;27 i++; j--;28 }29 }30 recursion(depth - 1, arr, j + 1);31 recursion(depth - 1, arr + i, size - i);32}33 34int main() {35 int a, b, d;36 cin >> a >> b >> d;37 generate(a, b, c);38 recursion(d, c, b);39 for (int i = 0; i < b; ++i) cout << c[i] << " ";40 cout << endl;41}42 函数 int logic(int x, int y) 的功能是( )