Напишите рекурсивную функцию, вычисляющую сумму целых чисел 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; }
Объяснение кода листинга программы
- Включаем стандартную библиотеку ввода-вывода
- Определяем рекурсивную функцию с двумя целыми числами в качестве параметров и без параметров в качестве возвращаемого значения
- Проверяем, больше ли второе число нуля. Если да, то рекурсивно вызываем функцию с увеличенным первым числом и уменьшенным вторым числом. Если меньше или равно нулю, то рекурсивно вызываем функцию с уменьшенным первым числом и увеличенным вторым числом. Если второе число равно нулю, то возвращаем первое число
- В функции main() объявляем два целочисленных переменных и используем цикл while для получения значений от пользователя и вызова функции recsum(). Выводим результат сложения на экран
- По завершении цикла while завершаем программу
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д