给定一个数组,将最小数字(应大于 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中文网其他相关文章!