0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 9
1

Нужно написать с рекурсией. Числа Люка

10.04.2012, 22:52. Показов 3341. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите плиз!!
Числа Люка определяются так: первое число равно 1, второе равно 3, каждое следующее равно сумме двух предыдущих . Составить программу, которая находит первые k чисел Люка (k- задается пользователем).
Определить номер последнего числа Люка, которое входит в диапозон integer (longint). Вывести в виде таблицы данное число Люка и три предыдущих с их номерами.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2012, 22:52
Ответы с готовыми решениями:

нужно решить рекурсией
Найдите сумму цифр заданного натурального числа. var n,s:integer; begin s:=0; ...

нужно решить рекурсией
Треугольник задан координатами своих вершин. Составить программу вычисления его площади.

СМА BOSCH WOR 16153 OE крючок люка, разбор крышки люка (вертикалка)
Ребята, может кто знает технологию разбора крышки люка у BOSCH WOR 16153 OE с верхней загрузкой,...

Нужно сделать что бы давало рандомно числа и нужно написать ответ
В командной строке. Тоесть примерно так: Запускаешь программу, показывает числа что выбрались...

1
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
11.04.2012, 09:55 2
Лучший ответ Сообщение было отмечено Vonderfull как решение

Решение

Сама рекурсивная функция простая.
Pascal
1
2
3
4
5
6
function Luk(n:integer):longint;
begin
if n=1 then Luk:=1
else if n=2 then Luk:=3
else Luk:=Luk(n-2)+Luk(n-1);
end;
Но считать рекурсивно все числа до maxLongin это издевательство, может за день и посчитает, в то время как циклами посчитает очень быстро.
Вот та же функция с циклом.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function Luk(n:integer):longint;
var a1,a2,an,i:longint;
begin
if n=1 then an:=1
else if n=2 then an:=3
else
 begin
  a1:=1;
  a2:=3;
  for i:=3 to n do
   begin
    an:=a1+a2;
    a1:=a2;a2:=an;
   end;
 end;
Luk:=an;
end;
Вот программа
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var k,i:longint;
    x:array[1..50] of longint;
begin
repeat
write('Введите натуральное число k=');
readln(k);
until k>0;
writeln('Первые ',k,' чисел Люка:');
for i:=1 to k do
write(Luk(i),' ');
writeln;
i:=1;
k:=0;
while Luk(i)>0 do
 begin
  k:=k+1;
  x[k]:=Luk(i);
  i:=i+1;
 end;
writeln('Номер последнего числа, входящего в диапазон типа Longint=',k);
writeln('Последние 3 числа:');
for i:=k downto k-2 do
writeln('k=',i,'=',x[i]:10);
end.
Запустите ее для сравнения с той и другой функциями.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2012, 09:55
Помогаю со студенческими работами здесь

решить нужно рекурсией
Реализовать функцию, генерирующую все перестановки чисел от 0 до N-1. помогите пожалуйста,если...

Написать программу с рекурсией
Помогите Написать программу с рекурсивной функцией перевода числа из десятичной системы счисления...

Написать программу с рекурсией
Описать рекурсивные функции для определения pi, hi. Задать значение Z и вычислить C (формулы для...

Числа Фибоначчи рекурсией
Всем привет! Сразу скажу, что: 1) Находить ЧФ от 1 до n-го я умею. 2) Находить ЧФ рекурсией в лоб...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru