Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 13.01.2016
Сообщений: 12
1

Вывести первые 11 членов последовательности Фибоначчи

29.01.2017, 14:28. Просмотров 2349. Ответов 18
Метки нет (Все метки)

Доброго времени суток, уважаемые программисты.
Хотел бы попросить Вас о помощи в решении программ по C++.
хочу предупредить, что на данном этапе курса мы только изучили while (do еще не затрагивали). Вот список небольших задач, в которых мне нужна Ваша помощь.
Очень прошу комментировать Ваши действия в строках. Помогите новичку. Огромное Спасибо ЗАРАНЕЕ.

3)Выведите на экран первые 11 членов последовательности Фибоначчи. Напоминаем, что первый и второй члены последовательности равны единицам, а каждый следующий — сумме двух предыдущих.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.01.2017, 14:28
Ответы с готовыми решениями:

По данному натуральному n выведите первые n членов этой последовательности
Дана монотонная последовательность, в которой каждое натуральное число k встречается ровно k раз:...

Получить первые n членов последовательности Фибоначчи
Последовательность Фибоначчи образуется так: первый и второй члены последовательности рав¬ны 1,...

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

Получить первые n членов последовательности фибоначчи.
Последовательность Фибоначчи образуется так: первый и второй члены последовательности равны 1,...

18
1252 / 1090 / 781
Регистрация: 29.02.2016
Сообщений: 3,395
29.01.2017, 16:03 2
C++
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
#include<iostream>
using namespace std;
 
int fib(int n)
{
    if (n == 0)
        return 0;
    if (n == 1)
        return 1;
    return fib(n-1)+fib(n-2);
}
 
int main()
{
    setlocale(LC_ALL, "Russian");   
    int n;
    cout<<"Введите количество членов последовательности:  ";
    cin>>n;
    for(int i=1;i<=n;i++) 
        cout<<" "<<fib(i);
    cout<<endl;
     
    system("pause");
    return 0;
}
0
Эксперт C
23450 / 14692 / 3095
Регистрация: 24.12.2010
Сообщений: 31,332
29.01.2017, 16:41 3
afront, красиво, но чрезвычайно неэффективно
0
1252 / 1090 / 781
Регистрация: 29.02.2016
Сообщений: 3,395
29.01.2017, 16:43 4
Байт, смешно слушать про эффективность в учебных задачках
0
Эксперт C
23450 / 14692 / 3095
Регистрация: 24.12.2010
Сообщений: 31,332
29.01.2017, 17:01 5
Цитата Сообщение от afront Посмотреть сообщение
смешно слушать про эффективность в учебных задачках
Ничего смешного не вижу. Зачем же учить неправильному?
Конечно, учить рекурсии надо. Но это такая традиция нелепая - учить на факториалах и фибоначчах. Да, можно продемонстрировать рекурсию на этих простейших вещах. Можно и на сложении двух чисел. Только после этого строго сказать - "И никогда, дети, так не делайте!"
Ведь посмотрев на условие задачи и ничего не зная о рекурсиях, можно сразу увидеть решение и короче, и естественней, и внятнее, и эффективнее. Но вы уже отравлены. И узрев факториал, тут же начинаете его считать рекурсивно.
А интересно, как вы будете считать ряд типа xn/n! ? Тоже считая отдельно каждый факториальчик? Мол, задачка-то учебная, сойдет!
1
1252 / 1090 / 781
Регистрация: 29.02.2016
Сообщений: 3,395
29.01.2017, 17:10 6
Цитата Сообщение от Байт Посмотреть сообщение
как вы будете считать ряд типа xn/n!
точно, это идея, теперь вопрошающим буду только с рекурсией такие задачки делать
0
Эксперт C
23450 / 14692 / 3095
Регистрация: 24.12.2010
Сообщений: 31,332
29.01.2017, 17:14 7
Цитата Сообщение от afront Посмотреть сообщение
точно, это идея, теперь вопрошающим буду только с рекурсией такие задачки делать
Ценю здоровое чувство юмора
0
4341 / 2007 / 255
Регистрация: 01.03.2013
Сообщений: 5,391
Записей в блоге: 22
29.01.2017, 17:17 8
Байт, ну вы же знаете максимально красивый и эффективный кот для этой задачи
C++
1
int main() {cout<<0<<" "<<1<<" "<<1<<" "<<2<<" "<<3<<" "<<5<<" "<<8<<" "<<13<<" "<<21<<" "<<34<<" "<<55;}
1
Байт
29.01.2017, 17:21
  #9

Не по теме:

Цитата Сообщение от _Ivana Посмотреть сообщение
ну вы же знаете
Понимаете в чем дело, у меня лапы устроены так, что нажимать комбинацию Shift-Ins мне не очень удобно....:)

0
_Ivana
29.01.2017, 17:25
  #10

Не по теме:

Байт, говорят, Ctrl+V в большинстве случаев помогает :) Хотя на работе я пишу на таком фреймворке, где эта комбинация не работает, а Shift+Ins действует, поэтому я и правда привык к последней. Но можно эту строку сгенерировать в любом языке или редакторе. Вы как думаете я эти числа получил? По памяти? Из Википедии скопировал? Нет, открыл rextester с Haskell, написал десяток символов, и скопипастил :D

0
2560 / 2178 / 230
Регистрация: 03.07.2012
Сообщений: 7,870
Записей в блоге: 1
29.01.2017, 17:33 11
Боюсь, если ТС азы "через форум" решает, то С++ ему не осилить.
0
4341 / 2007 / 255
Регистрация: 01.03.2013
Сообщений: 5,391
Записей в блоге: 22
29.01.2017, 17:35 12

Не по теме:

Haskell
1
2
3
f = 0:1:zipWith (+) f (tail f)
 
main = putStr . concat . intersperse "<<" "<<" . map show . take 11 $ f
Код
0<<" "<<1<<" "<<1<<" "<<2<<" "<<3<<" "<<5<<" "<<8<<" "<<13<<" "<<21<<" "<<34<<" "<<55



Добавлено через 1 минуту
zer0mail, а кто говорит об осилянии? Надо зачет сдать и забыть как страшный сон
0
2560 / 2178 / 230
Регистрация: 03.07.2012
Сообщений: 7,870
Записей в блоге: 1
29.01.2017, 19:14 13
Интересно, где С++ учат "для галочки"? И зачем (учили бы что попроще)...
0
Эксперт C
23450 / 14692 / 3095
Регистрация: 24.12.2010
Сообщений: 31,332
29.01.2017, 19:28 14
Цитата Сообщение от zer0mail Посмотреть сообщение
учили бы что попроще
А они в самом деле учат просто Си. А плюсы - для солидности. Ну, еще чтобы писать cin, cout вместо scanf, printf. И new вместо malloc. То есть стандартно изучаемое подмножество Си++ оказывается даже чуток попроще просто Си. И я не думаю, что тут надо так осуждать их выбор и подход. Для непрофильных, имхо, самое то. Другой вопрос, стоит ли вообще для непрофильных специальностей изучать программирование. Ответ неоднозначный. Да и дело это уже более высоких инстанций.
Я все-таки думаю, что иметь какое-то приблизительное представление о принципах работы гаджетов, которые кишат вокруг, не вредно. Но и педалировать для студента-ветеринара этот курс ни к чему.
А для основ грамотности типа "мама мыла раму", имхо, такой гибридик - самое то. Не Бэйсик же им изучать!
0
4341 / 2007 / 255
Регистрация: 01.03.2013
Сообщений: 5,391
Записей в блоге: 22
29.01.2017, 19:35 15
Да можно и Бэйсик, хоть VBA - научатся макросы с Ворде/Экселе писать. Я в свое время отучился на радиофизике, изучал ассемблер (ничего тогда не понял ) и Паскаль - игрушки типа змеек и визуализированных ханойских башен писали, половина моего диплома - текст паскалевской программы расчета квадратурного согласованного фильтра шумоподобного сигнала. Так что вообще неважно что изучать - лишь бы мозги тренировались
0
2560 / 2178 / 230
Регистрация: 03.07.2012
Сообщений: 7,870
Записей в блоге: 1
29.01.2017, 19:39 16
Для ветеринаров и кулинаров лучше б бейсик или электронные таблицы
1
Эксперт C
23450 / 14692 / 3095
Регистрация: 24.12.2010
Сообщений: 31,332
29.01.2017, 19:44 17
Цитата Сообщение от _Ivana Посмотреть сообщение
неважно что изучать - лишь бы мозги тренировались
Не могу с вами не согласиться!
Только вот Бейсик... Представьте себе, что нашему ветеринару по жизни вдруг придется всерьез заняться программизмом. И он по студенческой памяти начнет с бейсика... Нет, какой-то минимальный вкус надо закладывать...
0
4341 / 2007 / 255
Регистрация: 01.03.2013
Сообщений: 5,391
Записей в блоге: 22
29.01.2017, 19:54 18
В некоем MIT общие основы программирования (скорее всего для непрофильных специальностей тоже) преподают по волшебной книжке SICP, в которой ни модели памяти, ни указателей, ни команд процессора, ничего из низкоуровщены вообще нет И имхо, это правильно. Пусть лучше ветеринар будет знать Бэйсик и сможет написать простейшую программку, чем не знать С++ и не уметь ничего написать.
0
130 / 156 / 87
Регистрация: 06.04.2016
Сообщений: 992
30.01.2017, 07:45 19
Ему через while надо, я же сделал вчера этот код где он? Все 3 задачи Ваши решил. У меня, кстати работает 2 задача, про которую Вы говорили, что она не работает.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.01.2017, 07:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вычислить первые 20 членов последовательности чисел Фибоначчи
Извините, ну я никак не могу понять программирование циклов на Турбо паскале ]:-&gt; Помогите, чем...

Определите первые n членов последовательности Фибоначчи, начиная с третьего
Определите первые n членов последовательности Фибоначчи, начиная с третьего, число n задается...

Вывести первые N членов ряда Фибоначчи
Напишите процедуру, которая принимает параметр – натуральное число N – и выводит первые N чисел...

Вывести на экран первые n членов ряда Фибоначчи (рекурсия)
Вывести на экран первые n членов ряда Фибоначчи.(используя рекурсию)


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.