在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