מציאת הסכום המינימלי
שיעור 17 מתוך 17 בקורס מניפולציה על ביטים של Coddy.
אתגר
בינונינתון לך מערך <strong>a</strong> בגודל <strong>n</strong>.
אפשר לבצע את הפעולה הבאה על המערך:
- בחר שני מספרים שלמים שונים
<strong>i</strong>,<strong>j</strong>(1 ≤ i < j ≤ n), והחלף את<strong>a<sub>i</sub></strong>ב-<strong>x</strong>ואת<strong>a<sub>j</sub></strong>ב-<strong>y</strong>. כדי לא לפגוע במערך, התנאי<strong>a<sub>i </sub>| a<sub>j </sub>= x | y</strong>חייב להתקיים, כאשר<strong>|</strong>מסמל את פעולת ה-OR ברמת הסיביות. שים לב ש-<strong>x</strong>ו-<strong>y</strong>הם מספרים שלמים אי-שליליים.
יש להציג את הסכום המינימלי של המערך שאפשר לקבל לאחר ביצוע הפעולה שלעיל מספר כלשהו של פעמים.
נסו בעצמכם
#include <vector>
using namespace std;
int FindMinSum(vector<int> a) {
// כתבו כאן קוד
}כל השיעורים ביחידה מניפולציה על ביטים
תרגלו בעצמכם: קומפיילר C++ אונליין