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

更新于:2019年8月9日

165 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.