rt.
#include <iostream>
using namespace std;
struct Node {
int data;
Node* left;
Node* right;
Node(int val) : data(val), left(nullptr), right(nullptr) {}
};
Node* createTree(int a, int b) {
if (b == 0) {
return new Node(a);
}
Node* root = new Node(a ^ b);
root->left = createTree(a & b, (a & b) << 1);
root->right = createTree(a | b, a | b);
return root;
}
int calculateSum(Node* root) {
if (!root) {
return 0;
}
int sum = root->data + calculateSum(root->left) + calculateSum(root->right);
return sum;
}
int main() {
int a, b;
cin >> a >> b;
Node* root = createTree(a, b);
int result = calculateSum(root);
cout << result << endl;
return 0;
}
记录