Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.89
alinka_20
1 / 1 / 0
Регистрация: 11.10.2012
Сообщений: 58
#1

Вывести первые 100 чисел Фиббоначи - C++

16.10.2012, 13:20. Просмотров 2685. Ответов 20
Метки нет (Все метки)

на вывести на с++ первые 100 чисел фиббаначи
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2012, 13:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести первые 100 чисел Фиббоначи (C++):

первые 100 натуральных чисел, делящихся на 13 или на 17, и печатающую его. - C++
13. Напишите программу, заносящую в массив первые 100 натуральных чисел, делящихся на 13 или на 17, и печатающую его.

Генерировать и вывести на экран массив с целого числа n случайных чисел от -100 до 100 - C++
Генерировать и вывести на экран массив с целого числа n случайных чисел от -100 до 100. Число n вводит пользователь. Последний...

Ввести пять чисел. Вывести первые две цифры чисел. - C++
Ввести пять чисел. Вывести первые две цифры чисел. Использовать свою функцию, которая не возвращает значение.

Вывести первые 10 чисел - C++
Ребята помогите я уже не могу. С другом начали учить с++ и пишем одновременно программу одну и ту же, у него всё также, но у него...

Вывести первые двадцать чисел - C++
Вывести на экран первые двадцать чисел, кратных 7.

Вывести на экран первые N простых чисел - C++
Написать программу, которая выводит на экран первые N простых чисел Помогите разобраться, я решила задачу, надо чтоб выводилось N простых...

20
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
16.10.2012, 13:42 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main()
{
    int arr[100];
    
    arr[0] = 0;
    arr[1] = 1;
    
    for (int i=2; i<100; i++)
        arr[i] = arr[i-1] + arr[i-2];
        
    for (int i=0; i<100; i++)
        cout << arr[i] << " ";
 
    return 0;
}
1
alinka_20
1 / 1 / 0
Регистрация: 11.10.2012
Сообщений: 58
16.10.2012, 13:44  [ТС] #3
спасибо) а можно эту задачу использовать без массивов?
0
I.M.
565 / 548 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
16.10.2012, 13:57 #4
alinka_20, можно. Замените массив на 2 переменных и выводите все сразу на печать
1
doctor_lecter
280 / 153 / 8
Регистрация: 22.09.2012
Сообщений: 283
16.10.2012, 14:46 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
в int поместится максимум 46 число, 97 число не поместится в тип unsigned long long int.
3
alinka_20
1 / 1 / 0
Регистрация: 11.10.2012
Сообщений: 58
16.10.2012, 14:52  [ТС] #6
а можно в коде это написать))) пожалуйста)))
0
I.M.
565 / 548 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
16.10.2012, 15:33 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
    int before_prev = 0;
    int prev = 1;
 
    std::cout << before_prev << " " << prev << " ";
    
    for (int i=2; i<100; i++)
    {
        int next = prev + before_prev;
        before_prev = prev;
        prev = next;
        std::cout << next << " ";
    }
1
Байт
Эксперт C
16324 / 10600 / 1587
Регистрация: 24.12.2010
Сообщений: 20,207
16.10.2012, 15:40 #8
Цитата Сообщение от doctor_lecter Посмотреть сообщение
в int поместится максимум 46 число, 97 число не поместится в тип unsigned long long int.
Придется использовать либо double (что даст только приближенные результаты), либо поискать длинную арифметику (форум+гугл)
2
Catstail
Модератор
22713 / 11082 / 1795
Регистрация: 12.02.2012
Сообщений: 18,275
16.10.2012, 20:45 #9
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот точное решение:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <iostream.h>
 
// сложить 100-разрядные целые
 
void longAdd(char *a, char *b, char *c)
{
    int i,sh=0,aa,bb,cc;
    
    for (i=99; i>=0; i--) c[i]='0';
    for (i=99; i>=0; i--)
    {
 
        aa=a[i]-48;
        bb=b[i]-48;
        cc=aa+bb+sh;
 
        if (cc > 9)
        {
            sh=cc / 10;
            cc=cc % 10;
        }
        else
            sh=0;
 
        c[i]=cc+48;
    }
 
}
 
// Напечатать 100-разрядное целое
 
void longPrint(char *a)
{
    int i,j=0;
    for (i=0; i<= 99 ; i++)
    {
        if ((j == 0) && a[i] != '0') j=-1;
        if (j != 0) cout << a[i];
    }
}
 
int main(int argc, char* argv[])
{
    int i,j;
 
    char F1[100];
    char F2[100];
    char F3[100];
 
    for (i=0; i<=99; i++)
    {
        F1[i]='0';
        F2[i]='0';
    }
 
    F1[99]='1';
    F2[99]='1';
 
    longPrint(F1);
    cout << endl;
 
    longPrint(F2);
    cout << endl;
 
// Собственно, алгоритм...
 
    for (i=2; i<=100; i++)
    {
        longAdd(F1,F2,F3);
        longPrint(F3);
        cout << endl;
 
        for (j=0; j<=99; j++)
        {
            F1[j]=F2[j];
            F2[j]=F3[j];
        }
    }
    
    cout << endl;
 
    return 0;
}
Программа выводит 101 число Фибоначчи (с затравкой 1 1):
3
Миниатюры
Вывести первые 100 чисел Фиббоначи  
alinka_20
1 / 1 / 0
Регистрация: 11.10.2012
Сообщений: 58
18.10.2012, 10:28  [ТС] #10
почему окошко,на котором выведены числа, появляется на секунду и тут же исчезает?
1
Catstail
Модератор
22713 / 11082 / 1795
Регистрация: 12.02.2012
Сообщений: 18,275
18.10.2012, 11:04 #11
В 82-й строке напиши:

C++
1
   cin >> i;
0
хАЛЕКСЕЙх
9 / 9 / 2
Регистрация: 11.10.2012
Сообщений: 118
18.10.2012, 12:09 #12
Цитата Сообщение от alinka_20 Посмотреть сообщение
почему окошко,на котором выведены числа, появляется на секунду и тут же исчезает?
Цитата Сообщение от Catstail Посмотреть сообщение
cin >> i;
Это неправильно, добавь библиотеку
C++
1
#include <stdlib.h>
и вконце перед
C++
1
return 0;
добавь
C++
1
system("pause");
1
alinka_20
1 / 1 / 0
Регистрация: 11.10.2012
Сообщений: 58
18.10.2012, 12:15  [ТС] #13
спасибо большое))
0
Catstail
Модератор
22713 / 11082 / 1795
Регистрация: 12.02.2012
Сообщений: 18,275
18.10.2012, 12:43 #14
Цитата Сообщение от хАЛЕКСЕЙх Посмотреть сообщение
Это неправильно,
- так уж и неправильно?..
0
хАЛЕКСЕЙх
9 / 9 / 2
Регистрация: 11.10.2012
Сообщений: 118
18.10.2012, 13:17 #15
Цитата Сообщение от Catstail Посмотреть сообщение
- так уж и неправильно?..
Но код
C++
1
cin >> i;
Это не то, есть ведь специальные готовые функции, а то что вы написали
я бы назвал лжефункцию(имею ввиду, как бы остановки закрытия консоли)
0
18.10.2012, 13:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2012, 13:17
Привет! Вот еще темы с ответами:

Вывести на экран первые 20 чисел Фибоначчи. - C++
Помогите решить задачи через цикл do _ while: 1) Вывести на экран первые 20 чисел Фибоначчи. Каждое последующее число равно сумме двух...

Вывести на экран первые пять совершенных чисел - C++
Помогите пожалуйста с программой. 32. Вывести на экран первые пять совершенных чисел (функция возвращает 1, если число совершенное, 0 – в...

Циклы: первые 6 чисел, кратные 9, вывести на экран - C++
Первые 6 чисел, кратные 9 вывести на экран. Как дописать не могу понять? const int max = 109; int counter = 0; int ci= 0; ...

Вывести на экран первые сто простых чисел, пропуская каждое второе - C++
3. Написать программу вывода на экран первых ста простых чисел, пропуская каждое второе.


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

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

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