給定一個數組,將最小數字(應大於 0)加到數組中,使數組的總和變成偶數。
輸入- 1 2 3 4、
#輸出- 2
解釋 - 陣列的總和為10,所以我們
加上最小數2,使和為偶數。
方法一:計算數組所有元素的和,然後檢查和是否為偶數,然後添加最小數為2 ,否則添加最小數字為 1。
輸入- 1 2 3 4,
#輸出- 2
解釋-陣列的總和為10,所以我們 新增最小數字 2 以使總和為偶數。
#include<iostream> using namespace std; int main() { int arr[] = { 1, 2, 3, 4}; int n=4; int sum=0; for (int i = 0; i <n; i++) { sum+=arr[i]; } if (sum % 2==0) { cout <<"2"; } else { cout <<"1"; } return 0; }
方法 2 - 計算陣列中奇數個元素的計數。如果出現的奇數個數為偶數,則傳回 2,否則傳回 1。
輸入 - 1 2 3 4 5
#輸出 - 1
說明- 否。陣列中的 是 3
新增最小數字 1 以使總和為偶數。
#include<iostream> using namespace std; int main() { int arr[] = { 1, 2, 3, 4,5}; int n=5; int odd = 0; for (int i = 0; i < n; i++) { if (arr[i] % 2!=0) { odd += 1; } } if (odd % 2==0) { cout <<"2"; } else { cout <<"1"; } return 0; }
方法 3 - 採用標誌變數(初始化為 0)。每當我們在陣列中找到奇數元素時,我們都會對布林變數執行 NOT(!) 運算。此邏輯運算子反轉標誌變數的值(表示如果為 0,則將變數轉換為 1,反之亦然)。
輸入- 1 2 3 4 5
#輸出- 1
解釋-變數初始化為0。
遍歷陣列 p>
1 為奇數,變數改變 1。
2 為偶數
3 為奇數,變數改變 0。
4 為偶數
4 p>
5 為奇數,變數變成1
若變數值為1,則表示存在奇數個奇數元素,使元素之和為偶數的最小數量為加1。
否則最小數量為 2。
#include<iostream> using namespace std; int main() { int arr[] = { 1, 2, 3, 4,5}; int n=5; bool odd = 0; for (int i = 0; i < n; i++) { if (arr[i] % 2!=0) { odd = !odd; } } if (odd) { cout <<"1"; } else { cout <<"2"; } return 0; }#
以上是在C編程中,將最小的數字加到數組中,使得數組的總和變成偶數的詳細內容。更多資訊請關注PHP中文網其他相關文章!