在C語言程式設計中,向陣列新增最小數字以使總和變為偶數
給定一個數組,新增最小數字(應大於0)到陣列中,以使陣列的總和變為偶數。
輸入- 1 2 3 4,
輸出- 2
說明 - 陣列總和為10,因此
新增最小數字2以使總和為偶數。
方法1:計算陣列所有元素的總和,然後檢查總和是否為偶數,如果是,則新增的最小數字為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)。每當我們在陣列中找到奇數元素時,我們對布林變數執行非(!)操作。此邏輯運算子反轉標誌變數的值(這意味著如果它為0,則將變數轉換為1,反之亦然)。
輸入- 1 2 3 4 5
輸出- 1
說明 - 變數初始化為0。
遍歷陣列
1是奇數,變數變為1。
2是偶數
3是奇數,變數變為0。
4是偶數
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;
}
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP