Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2011, 11:18   #1
vadiprog
Пользователь
 
Регистрация: 24.09.2011
Сообщений: 96
По умолчанию Числа Фибоначчи

Пусть вводится последовательность из целых чисел, что заканчивается нулем. Найти суму тех из них, порядковые номера которых – числа Фибоначчи.
vadiprog вне форума Ответить с цитированием
Старый 28.10.2011, 11:32   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Характеристической функцией условия называется функция, которая равна 1, если условие истинно и 0, если оно ложно. Сумма чисел, индексы которых i удовлетворяют условию А, есть сумма произведений чисел на характеристическую функцию А индекса (S+=a[i]*XA(i)).
Задача: имея число, проверить, есть ли оно число Фибоначчи.
Альтернативная задача, лучше подходящая для данного условия: на ходу при последовательной обработке последовательности держать в уме следующее число Фибоначчи (благо, их последовательность монотонна) и проверять, равен ли индекс ему; если да, то считать следующее число Фибоначчи.
Abstraction вне форума Ответить с цитированием
Старый 28.10.2011, 11:38   #3
vadiprog
Пользователь
 
Регистрация: 24.09.2011
Сообщений: 96
По умолчанию

а реализовать ктото может?
vadiprog вне форума Ответить с цитированием
Старый 28.10.2011, 11:48   #4
vadiprog
Пользователь
 
Регистрация: 24.09.2011
Сообщений: 96
По умолчанию

На Делфи надо
vadiprog вне форума Ответить с цитированием
Старый 28.10.2011, 14:57   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

vadiprog, давайте так, Вы напишете программу, которая вычисляет по порядку числа фибоначчи, приведёте текст этой программы здесь, а я эту программку доработаю так, чтобы она вычисляла сумму вводимых оператором чисел, если их порядковые номера совпадаются с числами Фибоначчи. (ну изначальную задачу) ?..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.10.2011, 22:38   #6
vadiprog
Пользователь
 
Регистрация: 24.09.2011
Сообщений: 96
По умолчанию

Код:
var a,b,c:integer;
begin
readln(c);
a:=1;
b:=0;
 repeat
   b:=b+a;
   a:=b-a;
   writeln(b);
 until c<b;
 readln;
end.
vadiprog вне форума Ответить с цитированием
Старый 29.10.2011, 12:08   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

ну, раз я обещал..
ловите пример:
Код:
var a,b,i,
    NextNumber, Summa : integer;
    s: string;
begin
  i:=0;
  a:=1;
  b:=0;
  b:=b+a;
  a:=b-a;
  Summa := 0;
  s := ''; {эта строчка исключительно для отладки!}
  Writeln('Enter numbers (0 - for finish):');
  repeat
    inc(i);
    Readln(NextNumber);
    {если надо - получим следующий номер в последовательности Фибоначчи}
    while b<i do begin
       b:=b+a;
       a:=b-a;
    end;
    if b=i then begin
       Summa := Summa + NextNumber;
       {для отладки сохраним в строчку суммируемые числа}
       s := s + ' {'+IntToStr(i)+'} = '+ IntToStr(NextNumber);
    end;
  until NextNumber=0;
 WriteLn(' Summa = ',Summa);

 {отладка - выдадим список просуммуированных числе (в фигурных скобках их порядковые номера,
                  которые и совпадали с числами Фибоначчи)}
 WriteLn('Details numbers: '+s);
 readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Числа Фибоначчи. valiaam55 Помощь студентам 2 19.11.2010 19:16
Числа Фибоначчи vasyapupkin Помощь студентам 3 12.04.2010 11:27
Числа Фибоначчи Witaliy Помощь студентам 1 26.02.2009 12:18
Числа Фибоначчи imera Паскаль, Turbo Pascal, PascalABC.NET 8 17.01.2009 22:01
Числа Фибоначчи sher_man Помощь студентам 9 20.10.2007 18:45