Нинa

Дана непустая последовательность натуральных чисел, за которой следует 0. Вычислить сумму тех из них, порядковые номера которых - числа Фибоначчи.

23.06.2013, 11:09. Показов 3280. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые форумчане, не могли бы вы помочь. Нужно срочно решить задачу в visual basic, но совершенно ничего не получается. Условие: Дана непустая последовательность натуральных чисел, за которой следует 0. Вычислить сумму тех из них, порядковые номера которых - числа Фибоначчи. -, помогите, если вам не сложно.
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.06.2013, 11:09
Ответы с готовыми решениями:

Дана последовательность натуральных чисел, за которой 0, вычислить сумму тех, номера которых - числа фибоначчи
Помогите исправить проблему: после 3 числа условие n=t не работает и элементы последовательности не суммируются, какое условие для записи в...

Дана последовательность натуральных чисел,вычислить сумму тех из них,порядковые номера которых являются простыми числами
Нужно написать такую программу. Дана последовательность натуральных чисел,вычислить сумму тех из них,порядковые номера которых являются...

Дана последовательность натуральных чисел,вычислить сумму тех из них,порядковые номера которых являются простыми числами
Дана задача в Delphi: Дана последовательность натуральных чисел,вычислить сумму тех из них,порядковые номера которых являются простыми...

4
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
23.06.2013, 12:36
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub Command1_Click()
Dim i%
n = 143
ReDim m%(n + 1)
m(n + 1) = 0
For i = 1 To n
m(i) = Int(Rnd * 10) + 1
Print m(i); " ";
Next i
Print m(n + 1): Print
'......................
S = 0: i = 2
Do While Fb(i) < UBound(m)
   ind = Fb(i)
      Print "m("; ind; ")="; " "; m(ind)
      S = S + m(ind)
      i = i + 1
Loop
Print: Print "S="; S
End Sub
 
Function Fb(k%)
  If k <= 2 Then Fb = 1 Else Fb = Fb(k - 1) + Fb(k - 2)
End Function
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
37903 / 20969 / 4295
Регистрация: 12.02.2012
Сообщений: 34,497
Записей в блоге: 14
23.06.2013, 13:20
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Непонятно, зачем в условии фигурирует нуль... Ведь последовательность-то конечная (VB - не Haskell!), и, значит, хранится в массиве конечных размеров. А раз так, то переформулируем условие: найти сумму элементов массива, индексы которых принадлежат последовательности Фибоначчи (1,1,2,3,5,8,...).

Вот простое решение:

Visual Basic
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
Function SumSeq(X() As Integer) As Integer
    SumSeq = X(1)
    n% = UBound(X, 1)
    pPrev% = 1
    pNext% = 2
    Do
      If pNext% > n% Then Exit Function
      SumSeq = SumSeq + X(pNext%)
      k% = pNext%
      pNext% = pNext% + pPrev%
      pPrev% = k%
    Loop
End Function
 
Sub Test()
Dim X(1 To 10) As Integer
    X(1) = 11
    X(2) = 22
    X(3) = 33
    X(4) = 44
    X(5) = 55
    X(6) = 66
    X(7) = 77
    X(8) = 88
    X(9) = 99
    X(10) = 111
    Debug.Print SumSeq(X)  ' Печать 209 - верно
End Sub
Добавлено через 8 минут
gaw,

Вычислять числа Фибоначчи так:

Visual Basic
1
2
3
Function Fb(k%)
  If k <= 2 Then Fb = 1 Else Fb = Fb(k - 1) + Fb(k - 2)
End Function
Не очень рационально. Лучше так:

Visual Basic
1
2
3
4
5
6
7
Function Fb(k As Integer, Optional c As Integer = 1, Optional p As Integer = 1) As Integer
   If (k <= 2) Then
     Fb = c
   Else
     Fb = Fb(k - 1, p + c, c)
   End If
End Function
Не происходит многократного перевычисления. Кроме того, поскольку у Вас не указан тип функции Fb, то он будет Variant (а это лишние преобразования!)
2
Нинa
23.06.2013, 14:38
Спасибо, сильно выручили)
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
23.06.2013, 16:51
Catstail, совершенно с Вами согласен
я просто вырезал фрагменты из кода для генерации длинных чФ
(там числа в виде строк)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.06.2013, 16:51
Помогаю со студенческими работами здесь

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

Дана непустая последовательность различных натуральных чисел за которой следует 0. Определить порядковый номе
Помогите с решением данной задачи в с++.Дана непустая последовательность различных натуральных чисел, за которой следует 0. Определить...

Дана непустая последовательность различных натуральных чисел, за которой следует 0. Оп-ределить наименьшее положительное в последовательности
void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString S; int n,min,m; S=Edit1-&gt;Text+&quot;,&quot;; n=S.Pos(&quot;,&quot;); ...

Вычислить сумму тех из чисел, порядковые номера которых простые числа
Данна последовательность из не менее двух натуральных чисел, за которым следует 0. Вычислить сумму тех из них, порядковые номера которых...

Вычислить сумму тех чисел, порядковые номера которых - простые числа
Программа. Данная последовательность из не менее чем двух натуральных чисел, за которыми следует 0. Вычислить сумму тех из них, порядковые...


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

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

Новые блоги и статьи
Анализ и линтинг кода JavaScript: ESLint, Prettier и JSHint
run.dev 26.04.2025
JavaScript прошёл долгий путь от простого языка для анимации веб-страниц до основы современной веб-разработки. С ростом сложности приложений, увеличением кодовых баз и масштабированием команд. . .
Паттерны в Python: Singleton, Factory и Observer
py-thonny 26.04.2025
Паттерны проектирования — это проверенные временем решения типовых проблем разработки программного обеспечения. Их история берёт начало с книги "Приёмы объектно-ориентированного проектирования. . . .
Исключения в C#: Stack Overflow, Access Violation и Out of memory
stackOverflow 26.04.2025
Исключения в C# — это не только механизм оповещения о проблемах, а целое искусство управления потоком выполнения программы в экстремальных ситуациях. Обычное исключение, например,. . .
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Структура "железный OnKeyUp" вместо антидребезга. Полностью асинхронный счётчик.
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
Параллельное программирование с OpenMP в C++
NullReferenced 24.04.2025
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для. . .
Цепочки методов в C# с Fluent API
UnmanagedCoder 24.04.2025
Современное программирование — это не только решение функциональных задач, но и создание кода, который удобно поддерживать, расширять и читать. Цепочки методов и Fluent-синтаксис в C# стали мощным. . .
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru