Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/76: Рейтинг темы: голосов - 76, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 14.11.2019
Сообщений: 22

Последовательность чисел Фибоначчи через циклы

19.11.2019, 18:06. Показов 15860. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Чего не хватает в коде для вывода последовательности чисел Фибоначчи?
Без возвращающих методов, без return


class les3i8
{
static void Main()
{
Console.WriteLine("Введите кол-во чисел в последовательности");

int s = 0;
for (int num = 1; num <= 10; num++)
{
s = num - s;


Console.WriteLine(s);
}
Console.ReadLine();
}

}
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.11.2019, 18:06
Ответы с готовыми решениями:

Последовательность чисел Фибоначчи
Помогите дописать код. Нужно добавить, чтоб сначала выводилась сама последовательность из чисел Фибоначчи(например из 10), затем нужно было...

Получить последовательность n чисел Фибоначчи
Получить последовательность n чисел Фибоначчи (целое число n&gt;1).

Последовательность Фибоначчи
Последовательность Фибоначчи образуется так: первый и второй члены последовательности равны 1, каждый следующий равен сумме двух предыдущих...

6
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,214
19.11.2019, 18:15
Roman_Marinov, логики (придет со временем) и переменных. На всякий случай ссылка Числа Фибоначчи
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
 
class Programm
{
    static void Main()
    {
        int prev = 0;
        int current = 1;
        int temp;
 
        Console.WriteLine(prev);
        for (int i = 0; i <= 10; i++)
        {
            Console.WriteLine(current);
            temp = current;
            current = current + prev;
            prev = temp;
        }
 
        Console.ReadKey();
    }
}
1
1 / 1 / 0
Регистрация: 14.11.2019
Сообщений: 22
20.11.2019, 14:36  [ТС]
сидел ломал голову, никак не пойму последовательность выполнения каждого действия во время выполнения цикла.
я сопоставлял с теми цифрами которые на выходе. не пойму как так получаются.

если не трудно, можете написать?

Добавлено через 4 минуты
1
1
2
3
5
8
13
21
34
55
89
144
233
377


Console.WriteLine(current); - это первая единица
temp = current; - это вторая единица
current = current + prev; - тут тоже будет 1, хотя должна быть 2
prev = temp; - тут еще 1, хотя должна быть 3

как разобраться?
0
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,214
20.11.2019, 15:09
Лучший ответ Сообщение было отмечено Roman_Marinov как решение

Решение

Единственная переменная которая нам нужна в цикле для вывода на экран - это current.
Переменная prev запоминает какое число было до этого (нужно для логики)
Переменная temp для запоминая значений (нужно для логики)


Напечатано: 0 (до цикла)
Начало цикла

1 проход)
Напечатано: 0 1
temp = current; // temp = 1 // единица
current = current + prev; // 1 = 1 + 0 // единица
prev = temp; // prev = 1 // единица

2 проход)
Напечатано: 0 1 1
temp = current; // temp = 1 // единица
current = current + prev; // current = 1 + 1 // двойка
prev = temp; // prev = 1 // единица

3 проход)
Напечатано: 0 1 1 2
temp = current; // temp = 2 // двойка
current = current + prev; // current = 2 + 1 // тройка
prev = temp; // prev = 2 // двойка

4 проход)
Напечатано: 0 1 1 2 3
temp = current; // temp = 3 // тройка
current = current + prev; // current = 3 + 2 // пятерка
prev = temp; // prev = 3 // тройка

5 проход)
Напечатано: 0 1 1 2 3 5
temp = current; // temp = 5 // пятерка
current = current + prev; // current = 5 + 3 // восьмерка
prev = temp; // prev = 5 // пятерка

Добавлено через 1 минуту
Цитата Сообщение от Roman_Marinov Посмотреть сообщение
temp = current; - это вторая единица
Цитата Сообщение от Roman_Marinov Посмотреть сообщение
prev = temp; - тут еще 1, хотя должна быть 3
почему 3 ? когда значение переменной temp успело поменяться с 1 на 3 ?
1
1 / 1 / 0
Регистрация: 14.11.2019
Сообщений: 22
20.11.2019, 16:05  [ТС]
спасибо, очень подробно расписали.
скажите на что сначала и потом обращали внимание, чтобы написать такую логику?
я так же хотел бы уметь.
0
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,214
20.11.2019, 16:43
Лучший ответ Сообщение было отмечено Roman_Marinov как решение

Решение

Цитата Сообщение от Roman_Marinov Посмотреть сообщение
обращали внимание, чтобы написать такую логику?
1) для начала пришлось почитать википедию, чтобы вспомнить что вообще такое "Числа Фибоначчи"
2) увидев закономерность, понял что следующее число образуется из текущего и предыдущего (для этого нужны 2 переменные) current и prev
3) В цикле понял, что не получается обойтись 2-мя переменными, добавил 3-ю temp
4) Число ноль не получилось отобразить в цикле (вынес за его пределы)
5) Протестил код - все работает - скинул вам

Цитата Сообщение от Roman_Marinov Посмотреть сообщение
я так же хотел бы уметь
Изучите темы (синтаксис языка + понимание как это работает):
1) переменные
2) условия (if else)
3) циклы (while, do while, for)
4) массивы (обычные, двумерные, зубчатые)
5) Отладчик (дебаггер)
И вперед на этот форум. ОЧЕНЬ часто попадают задачки на массивы. Просто решайте их и логика со временем будет "прокачиваться". Со временем станет скучно делать такие легкие задачки.
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
20.11.2019, 16:44
Лучший ответ Сообщение было отмечено Roman_Marinov как решение

Решение

Цитата Сообщение от Roman_Marinov Посмотреть сообщение
не пойму последовательность выполнения каждого действия во время выполнения цикла.
Цитата Сообщение от Roman_Marinov Посмотреть сообщение
на что сначала и потом обращали внимание, чтобы написать такую логику?
Расчертите табличку значений на каждой итерации:
ИтерацияЗначения
 ПредыдущееТекущееСледующее
1011
2112
3123
4235
5358
65813
781321
8132134
9213455
10345589

Обратили внимание, что на каждой итерации значения как бы смещаются влево?
Предыдущее становится Текущим, Текущее становится Следующим, а Следующее становится суммой Предыдущего и Текущего.

Вот и реализуйте этот простейший алгоритм:
C#
1
2
3
4
5
6
var prev = 0, curr = 1, next = 1;
for (int i = 1; i <= 10; i++)
{
   // 1. Смотрим на значение
   // 2. Сдвигаем влево
}
Теперь каждую строчку комментария преобразуйте в код:
C#
1
2
3
4
5
6
7
// 1. Смотрим на значение
Console.WriteLine(curr);
 
// 2. Сдвигаем влево
prev = curr; // Предыдущее становится Текущим
curr = next; // Текущее становится Следующим
next = prev + curr; // Следующее становится суммой Предыдущего и Текущего
Если вам надо, чтобы последовательность начиналась не с единицы, а с нуля, то достаточно изменить на какое значение смотрим на каждой итерации (предыдущее вместо текущего), а все остальное остается неизменным:
C#
1
2
// 1. Смотрим на значение
Console.WriteLine(prev);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.11.2019, 16:44
Помогаю со студенческими работами здесь

Последовательность Фибоначчи
1 Последовательность Фибоначчи определяется так: a(0)= 1, a(1) = 1, a(k) = a(k-1) + a(k-2) при k &gt;= 2. Дано n, вычислить a(n).

Последовательность Фибоначчи
Последовательность фибоначчи определяется так а(0)=1. а(к)-1=а(к-1)+а(к-2)при к&gt;=2. дано n вычислить а(n)

По тексту вывести последовательность Фибоначчи
Нужно заменить буквы слова на последовательность Фибоначчи, начиная с тройки и после каждого числа ставить #. Например, букве &quot;а&quot;...

Заменить алфавит на последовательность Фибоначчи
Нужно заменить алфавит на последовательность Фибоначчи начиная с 3 и между числами поставить #. Заменить получилось, но разделитель...

Проверить образуют ли введенные числа последовательность Фибоначчи
В первой строчке вводится сколько всего элементов последовательности(до ста) Во второй строчке n натуральных чисел (n&lt;10^9) (Числа...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru