Рекурсивная функция сложеня двух чисел.
От: Zimy4  
Дата: 24.05.07 07:28
Оценка:
1. Поставлена задача:
Написать рекурсивную функцию сложения двух чисел, используя только прибавление единицы.(TurboPascal)

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

var a : integer;
    b : integer;

function Summ(x, y:integer):integer;
begin
     if y = 0 then Summ := x
     else Summ := Summ(x,y-1)+1;
end;

begin
    Write('Введите A: ');
    Readln(a);
    Write('Введите B: ');
    Readln(b);
    Write(a, '+', b, '=', Summ(a,b));
end.

В принципе оно работает, но вот соответствует ли оно условию задачи "используя только прибавление единицы".

2. Об вторую задачу моск себе сломал....немогу понять входные данные, если можно разъясните:

Руководство фирмы анализирует работу за последние К лет. Одна из задач, кото-рая решается,
заключается в определении самого длительного
промежутка времени, в тече-ние которого некий обобщенный показатель М
работы фирмы был постоянный. Написать программу определения и вывода на экран
данного временного интервала (указать год нача-ла и год конца данного участка).

Мое решение:
пользователь вводит:
K — количество лет (например: 10)
затем вводит К раз:
ArrayYear[K] — год и ArrayM[K] обобщенный показатель. можно конечно использовать запись:
Data = record
    Year : Integer;     { Год }
    M     : LongInt;     { Показатель }
end;


затем программа запрашивает, какой показатель M следует искать.
ищет в массиве ArrayM максимальную последовательность M и выводит на экран.

Есть ли какие другие варианты? Может я неправильно понял задачу .
Кто хочет что-то сделать ищет возможность, кто не хочет — причину.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.