C++ Дана последовательность из n вещественных чисел. Первое число в последо- вательности...

+737 голосов
2.2m просмотров

C++ Дана последовательность из n вещественных чисел. Первое число в последо- вательности нечетное. Найти сумму всех идущих подряд в начале последова- тельности нечетных чисел. Условный оператор не использовать.


Информатика (31 баллов) | 2.2m просмотров
Дан 1 ответ
+154 голосов

Использован тернарный оператор.

Код:

  • #include
  • template
  • constexpr T even_sum(T seq[], int n, int i, T sum) {
  •    return i == n || seq[i] % 2 != 0 ? sum : even_sum(seq, n, i+1, sum + seq[i]);
  • }
  • int main() {
  •    constexpr int sequence[] = {4, 6, 8, 10};
  •    constexpr int n = sizeof(sequence) / sizeof(*sequence);
  •    constexpr int k = even_sum(const_cast(sequence), n, 0, 0);
  •    std::cout << k << std::endl;</li>
  •    return 0;
  • }
(7.2k баллов)