Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Cách thêm số nhỏ nhất vào mảng để tổng thành số chẵn trong C++?

Giả sử có một mảng chứa các số. Chúng ta cần xác định số lượng số nguyên dương tối thiểu cần thêm vào để tổng các phần tử trở thành số chẵn. Số thêm vào phải lớn hơn 0. Vì vậy, nếu tổng các phần tử là lẻ, ta thêm 1; nếu tổng đã là chẵn, ta thêm 2 để tổng vẫn chẵn.

Thuật toán

addMinNumber(arr)

bắt đầu
  s := 0
  với mỗi phần tử e từ arr, thực hiện
    s := e + s
  done
  nếu s là chẵn, trả về 2, ngược lại trả về 1
kết thúc

Ví dụ

#include <iostream>
using namespace std;

int addMinNumber(int arr[], int n) {
  int sum = 0;
  for(int i = 0; i < n; i++) {
    sum += arr[i];
  }
  return (sum % 2) ? 1 : 2;
}

int main() {
  int arr[] = {5, 8, 4, 7, 5};
  int n = sizeof(arr)/sizeof(arr[0]);
  cout << "Minimum " << addMinNumber(arr, n) << " should be added";
  return 0;
}

Kết quả

Minimum 1 should be added