0 / 0 / 0
Регистрация: 07.07.2014
Сообщений: 27
1

Написать программу для вывода на экран чисел Фибоначчи, меньших заданного числа Q

01.09.2014, 17:18. Показов 3502. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу для вывода на экран чисел Фибоначчи (1,1,2,3,5,8 ... xn = xn-1 + xn-2), меньших заданного числа Q.

Помогите кому не сложно
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.09.2014, 17:18
Ответы с готовыми решениями:

Написать программу вывода всех совершенных чисел, меньших заданного числа n
Натуральное число называется совершенным, если оно равно сумме всех своих делителей, за...

Найти сумму чисел Фибоначчи, меньших заданного числа
1) Задан массив М натуральных чисел, упорядоченный по неубыванию, т.е .: M<=M<=...<=M. Найти первое...

Найти сумму чисел Фибоначчи, меньших заданного числа Q
4. Найти сумму чисел Фибоначчи, меньших заданного числа Q.

Найти сумму чисел Фибоначчи, меньших заданного числа Q
1.Найти сумму чисел Фибоначчи, меньших заданного числа Q.

13
Модератор
Эксперт CЭксперт С++
5273 / 2360 / 342
Регистрация: 20.02.2013
Сообщений: 5,755
Записей в блоге: 20
01.09.2014, 17:31 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main()
{
    long long num = 1;
    std::cout << "Enter number q: ";
    int q;
    std::cin >> q;
    std::cout << num << " ";
    for (int i=0; i<=q; ++i)
    {
         std::cout << num << " ";
         num += num;
     }
    return 0;
}
1
57 / 51 / 42
Регистрация: 18.07.2014
Сообщений: 194
01.09.2014, 17:34 3
Ну как-то так:
Кликните здесь для просмотра всего текста

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>
#include <vector>
 
using namespace std;
 
typedef long long lld;
 
int main()
{
    lld q;
    cout << "[q] = ";
    cin >> q;
    vector<lld> fibb_num;
    fibb_num.push_back( 1 ); fibb_num.push_back( 1 );
    cout << "Fibonacci series < [q]:\n1 1 ";
    while ( true )
    {
        lld fibb_num_now = fibb_num[fibb_num.size()-1] + fibb_num[fibb_num.size()-2];
        if ( fibb_num_now >= q )
            break;
        cout << fibb_num_now << " ";
        fibb_num.push_back( fibb_num_now );
    }
    return 0;
}


Не по теме:


Ой, извините, уже ответили :(

1
Модератор
Эксперт CЭксперт С++
5273 / 2360 / 342
Регистрация: 20.02.2013
Сообщений: 5,755
Записей в блоге: 20
01.09.2014, 17:36 4
Цитата Сообщение от porshe Посмотреть сообщение
Ой, извините уже ответили
Это даже хорошо, потому что у меня чё-то криво считает ))) Надо переделывать.
0
57 / 51 / 42
Регистрация: 18.07.2014
Сообщений: 194
01.09.2014, 17:47 5
Цитата Сообщение от gru74ik Посмотреть сообщение
у меня чё-то криво считает
У меня, кстати, тоже . Две единицы выводятся даже если q < 1. Вот исправленный код, если ТС интересно:
Кликните здесь для просмотра всего текста

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
26
27
#include <iostream>
#include <vector>
 
using namespace std;
 
typedef long long lld;
 
int main()
{
    lld q;
    cout << "[q] = ";
    cin >> q;
    vector<lld> fibb_num;
    fibb_num.push_back( 1 ); fibb_num.push_back( 1 );
    if ( q > 1 )
        cout << "Fibonacci series < [q]:\n1 1 ";
    else cout << "No fibbonacci series < [q]" << endl;
    while ( q > fibb_num[fibb_num.size()-1] )
    {
        lld fibb_num_now = fibb_num[fibb_num.size()-1] + fibb_num[fibb_num.size()-2];
        if ( fibb_num_now >= q )
            break;
        cout << fibb_num_now << " ";
        fibb_num.push_back( fibb_num_now );
    }
    return 0;
}
1
Модератор
Эксперт CЭксперт С++
5273 / 2360 / 342
Регистрация: 20.02.2013
Сообщений: 5,755
Записей в блоге: 20
01.09.2014, 17:48 6
Вот так работает:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main()
{
    long long a = 1;
    long long b = 1;
    std::cout << "Enter number q: ";
    int q;
    std::cin >> q;
    std::cout << a << " ";
    for (int i=0; i<=q; ++i)
    {
        std::cout << b << " ";
        int temp = a + b;
        a = b;
        b = temp;
    }
    return 0;
}
0
316 / 178 / 73
Регистрация: 18.01.2014
Сообщений: 387
01.09.2014, 17:51 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
int main() {
    unsigned long long q, a = 1, b = 1;
    cout << "Q? ";
    cin >> q;
    while (a < q) {
        cout << a << ' ';
        b += a;
        a = b - a;
    }
}
0
Модератор
Эксперт С++
13407 / 10518 / 6283
Регистрация: 18.12.2011
Сообщений: 28,079
01.09.2014, 17:52 8
itel, а почему не воспользовались поиском по этому разделу:
Посчитать первые числа Фибоначчи и показать, что сумма этих чисел кратна 11
Числа Фибоначчи - растолковать код

И еще 8 страниц ссылок.
0
Модератор
Эксперт CЭксперт С++
5273 / 2360 / 342
Регистрация: 20.02.2013
Сообщений: 5,755
Записей в блоге: 20
01.09.2014, 18:22 9
Упс, условие невнимательно прочитал. Правильно будет так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main()
{
    long long a = 1;
    long long b = 1;
    std::cout << "Enter number: ";
    int q;
    std::cin >> q;
    std::cout << a << " ";
    while (b<q)
    {
        std::cout << b << " ";
        int temp = a + b;
        a = b;
        b = temp;
    }
    return 0;
}
P.S. Собственно, у BlackIce то же самое, только он меня опередил (и у него покрасивее).
1
1404 / 646 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
01.09.2014, 18:58 10
Вот, что у меня получилось
C++
1
2
3
4
5
6
7
#include <iostream>
 
int main()
{
    for(int a = 1, b = 1, c, Q = 100; a<Q; c=a, a+=b, b=c)
        std::cout << a << ' ';
}
Добавлено через 59 секунд
Похоже на код BlackIce.
0
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 843
01.09.2014, 19:41 11
Цитата Сообщение от Dani Посмотреть сообщение
Вот, что у меня получилось
Проверь при Q=2000000000
0
1404 / 646 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
01.09.2014, 19:48 12
AlexVRud, я понимаю, что будет overflow. Ограничение на число Q не было дано. Q может быть равно 10^100, и тогда ни один из представленных выше кодов работать не будет
0
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 843
01.09.2014, 20:11 13
Цитата Сообщение от Dani Посмотреть сообщение
я понимаю, что будет overflow. Ограничение на число Q не было дано. Q может быть равно 10^100, и тогда ни один из представленных выше кодов работать не будет
При (a<Q)&&(b<=a) на любых типах, при корректных Q будем получать правильный результат
0
1404 / 646 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
01.09.2014, 20:25 14
Цитата Сообщение от AlexVRud Посмотреть сообщение
при корректных Q
Q = 10^100. Результат верный?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.09.2014, 20:25
Помогаю со студенческими работами здесь

Написать программу вывода всех квадратов натуральных чисел не превосходящих заданного числа n
необходимо написать программу вывода всех квадратов натуральных чисел не превосходящих заданного...

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

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

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

Написать программу для вывода на экран степеней (от 1 до 10) числа 3
Написать программу для вывода на экран степеней (от 1 до 10) числа 3.

Написать программу для вывода на экран степеней (от 1 до 10) числа
Написать программу для вывода на экран степеней (от 1 до 10) числа


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru