首页 > 文章列表 > 在C编程中,将最小的数字添加到数组中,使得数组的总和变为偶数

在C编程中,将最小的数字添加到数组中,使得数组的总和变为偶数

数组 偶数 添加数字
206 2023-08-29

给定一个数组,将最小数字(应大于 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

输出 < /strong>- 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。

遍历数组

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;
}