Напишите рекурсивную функцию, вычисляющую сумму целых чисел n и m - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Составить программу для следующей задачи используя рекурсивные алгоритмы! Напишите рекурсивную функцию, вычисляющую сумму целых чисел n и m, в которой из арифметических операций используется только прибавление и вычитание единиц

Решение задачи: «Напишите рекурсивную функцию, вычисляющую сумму целых чисел n и m»

textual
Листинг программы
#include <stdio.h>
 
int recsum(int a, int b) {
    return ( b > 0 ) ? recsum(a + 1, b - 1) : ( b < 0 ) ? recsum(a - 1, b + 1) : a;
}
 
int main(void) {
    int a, b;
    
    while ( printf("A = ") && scanf("%d", &a) == 1 && printf("B = ") && scanf("%d", &b) == 1 )
        printf("A + B = %d\n", recsum(a, b));
    
    return 0;
}

Объяснение кода листинга программы

  1. Включаем стандартную библиотеку ввода-вывода
  2. Определяем рекурсивную функцию с двумя целыми числами в качестве параметров и без параметров в качестве возвращаемого значения
  3. Проверяем, больше ли второе число нуля. Если да, то рекурсивно вызываем функцию с увеличенным первым числом и уменьшенным вторым числом. Если меньше или равно нулю, то рекурсивно вызываем функцию с уменьшенным первым числом и увеличенным вторым числом. Если второе число равно нулю, то возвращаем первое число
  4. В функции main() объявляем два целочисленных переменных и используем цикл while для получения значений от пользователя и вызова функции recsum(). Выводим результат сложения на экран
  5. По завершении цикла while завершаем программу

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы