Рекурсия: функция сложения двух чисел, используя только прибавление единицы - C (СИ)
Формулировка задачи:
Помогите написать программу:
Написать функцию сложения двух чисел, используя только прибавление единицы.
Решение задачи: «Рекурсия: функция сложения двух чисел, используя только прибавление единицы»
textual
Листинг программы
#include <stdio.h> #include <math.h> #include <stdlib.h> int plus(int operand1, int operand2, int iter) { if (abs(iter)<abs(operand2)) return plus(operand1+(operand2<0? -1: 1), operand2, iter + (operand2<0? -1: 1)); else return operand1; } int main(int argc, char** argv) { int oper1, oper2; scanf("%d", &oper1); scanf("%d", &oper2); printf("Result = %d", plus(oper1, oper2, 0)); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с числами и вводом-выводом
- Определение функции plus, которая реализует рекурсивную операцию сложения двух чисел
- В функции main считываются два числа с помощью функции scanf
- С помощью функции plus происходит сложение двух чисел
- Результат выводится на экран с помощью функции printf
- Функция plus осуществляет рекурсивное сложение двух чисел. Если модуль результата (iter) меньше модуля второго числа (operand2), то происходит рекурсивный вызов функции plus с увеличенным на единицу (или на -1, если второе число отрицательное) значением первого числа (operand1), увеличенным на единицу (или на -1, если второе число отрицательное) значением второго числа (operand2) и увеличенным на единицу (или на -1, если второе число отрицательное) значением iter. Если модуль результата (iter) больше или равен модулю второго числа (operand2), то возвращается первое число (operand1)
- В функции main считываются два числа с помощью функции scanf. Первое число считывается в переменную oper1, второе число считывается в переменную oper2
- Результат сложения двух чисел выводится на экран с помощью функции printf
- Программа завершается возвратом значения 0 из функции main, что означает корректное завершение работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д