Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
25 / 25 / 5
Регистрация: 21.11.2013
Сообщений: 208
1

Фибоначчи

25.12.2013, 15:15. Показов 586. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно всего лишь найти энное число Фибонначи. Только нужна программа для больших n.
Наваял нечто эдакое
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
25
26
27
28
29
30
31
32
33
34
35
36
37
type mas=array[0..1000] of longint;
var a,b,c:mas;
n,m,i,j,k,x:longint;
procedure sumlong(a,b:mas;var c:mas);
var i,k:longint;
begin
fillchar(c,sizeof(c),0);
if a[0]>b[0] then k:=a[0]
else
k:=b[0];
for i:=1 to k do
begin
c[i+1]:=(c[i]+a[i]+b[i]) div 10;
c[i]:=(c[i]+a[i]+b[i]) mod 10;
end;
if c[k+1]=0 then c[0]:=k+1;
end;
begin
readln(n);
a[1]:=1;
b[1]:=1;
a[0]:=1;
b[0]:=1;
for i:=3 to n do begin
sumlong(a,b,c);
for j:=0 to b[0] do
begin
a[j]:=b[j];
end;
for j:=0 to c[0] do
begin
b[j]:=c[j];
end;
end;
for i:=b[0] downto 1 do
write(b[i]);
end.
Но проблема в том что не работает, выводит много нулей. Помогите сделать
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2013, 15:15
Ответы с готовыми решениями:

Фибоначчи
Определить 37 число Фибоначчи. пацаны помогите!

Числа Фибоначчи
Друзья, помогите решить эту задачу, через функцию С объяснения, если можно. Заранее спасибо...

Последовательность Фибоначчи
Помогите пожалуйста решить задачу. Последовательность Фибоначчи u0, u1, … образуется по...

Расчет чисел Фибоначчи
программа для расчета чисел Фибоначчи

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
25.12.2013, 16:06 2
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
uses
  strutils;
const
  max = 1000;
 
function sum(const a, b : ansistring) : ansistring;
var i, s, carry : integer;
begin
  result := '';
  carry := 0;
  for i := length(a) downto 1 do
  begin
    s := ord(a[i]) + ord(b[i]) - 2*ord('0') + carry;
    result := chr((s mod 10) + ord('0')) + result;
    carry := s div 10;
  end;
end;
 
var
  f1, f2, f3 : ansistring;
  i, n : integer;
 
begin
  f1 := dupestring('0', pred(max)) + '1';
  f2 := dupestring('0', max);
  f3 := dupestring('0', max);
 
  readln(n);
  // n := 145; // выведет 1454489111232772683678306641953
  for i := 1 to n do
  begin
    f3 := sum(f1, f2);
    f2 := f1;
    f1 := f3;
  end;
 
  writeln(trimleftset(f3, ['0']));
end.
1
25 / 25 / 5
Регистрация: 21.11.2013
Сообщений: 208
25.12.2013, 16:43  [ТС] 3
Спасибо конечно, но интересно что с моим-то не так

Добавлено через 6 минут
Нашел все же ошибку в своей программе сам. Была в процедуре суммы
0
25.12.2013, 16:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2013, 16:43
Помогаю со студенческими работами здесь

Найти десятое число Фибоначчи
Числа Фибоначчи определяются как а(0)=1, а(1)=1, а(i)=a(i-1)+a(i-2). Найти десятое число Фибоначчи....

Найти первое число Фибоначчи, большее m
Помогите, пожалуйста. Числа Фибоначчи определяются формулами: f0=f1=1, fn=fn-1+fn-2; при n=2,3......

Найти первое нечетное число Фибоначчи
Доброго времени суток. Помогите пожалуйста решить задачу. Free Pascal Lazarus. Циклы с...

Найти первое число Фибоначчи, большее заданного n (n>1)
Найти первое число Фибоначчи, большее заданного n (n>1).

Найти количество чисел Фибоначчи в заданном интервале
Числа Фибоначчи - элементы числовой последовательности 0,1,1,2,3,5,8,13,21,34,55..., в которой...

Проверить, делится ли заданное число Фибоначчи на 7 без остатка
Входные данные: стандартный поток имеет числа, которые есть номерами чисел последовательности...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru