Re[2]: Рекурсивная функция сложеня двух чисел.
От: Zimy4  
Дата: 25.05.07 06:49
Оценка:
Здравствуйте, bkat, Вы писали:

B>Здравствуйте, Zimy4, Вы писали:


Z>>1. Поставлена задача:

Z>>Написать рекурсивную функцию сложения двух чисел, используя только прибавление единицы.(TurboPascal)

Z>>Верно ли мое решение:


B>Не верно.

B>Во-первых используется "отнимание".
А по другому (без вычитания ) не получится или есть другие мысли?

B>А во-вторых не работает с отрицательными числами.


Я понял и переделал теперь так:

var NumA : integer;
    NumB : integer;

function Summ(a, b:integer):integer;
begin
    if b = 0 then Summ := a
    else if b > 0 then Summ := Summ(a, b-1) + 1
         else Summ := Summ(a, b+1) - 1;

end;

begin
    Write('Введите A: ');
    Readln(NumA);
    Write('Введите B: ');
    Readln(NumB);
    WriteLn(NumA, '+', NumB, '=',Summ(NumA, NumB));
end.
Кто хочет что-то сделать ищет возможность, кто не хочет — причину.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.