Сумма чётных цифр числа на с++

01.01.2001

сумма чётных цифр числа на с++

  • разбиваем число на цифры делением на 10 в соответствующей степени, смотрим, какие нацело делятся на 2, ищем сумму
  • #include
    #include

    using namespace std;

    enum choice {
    ERR = -1,
    EVEN,
    ODD,
    ALL,
    };

    short summa(string, short = ALL);

    int main() {
    locale::global(locale(""));

    cout << " Введите число: ";
    string number;
    cin >> number;

    short sum = summa(number, EVEN);

    if (sum >= 0) cout << " Сумма = " << sum;
    else cout << " Данные не являются целым числом! \a";
    cout << endl;

    cin.get(); cin.get();
    return 0;
    }

    short summa(string _num, short _choice) {
    size_t size = _num.size();
    unsigned n = 0;

    if (_num[0] == '-' || _num[0] == '+') ++n;

    short sum = 0, even = 0, odd = 0, all = 0, digit;

    while (n < size) {
    if (_num[n] < 48 || _num[n] > 57) {
    _choice = ERR;
    break;
    }

    digit = _num[n] - 48;

    if (_num[n] & 1) odd += digit;
    else even += digit;
    all += digit;

    ++n;
    }

    switch (_choice) {
    case EVEN: sum = even; break;
    case ODD: sum = odd; break;
    case ALL: sum = all; break;
    default: sum = ERR;
    }

    return sum;
    }

  • Если ещё актуально, пиши на почту, помогу.

Вас заинтересует