С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Snayper
0 / 0 / 0
Регистрация: 20.11.2009
Сообщений: 21
#1

Сумма чисел Фибоначчи - C++

07.11.2010, 16:56. Просмотров 1314. Ответов 2
Метки нет (Все метки)

здраствуйте, я только начинаю осваивать этот язык и очень нужна помощь. Дали задачку, а я понятия не имею что и как писать.
0
Миниатюры
Сумма чисел Фибоначчи  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2010, 16:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сумма чисел Фибоначчи (C++):

Сумма чисел Фибоначчи - C++
Найти сумму чисел фибоначчи больше m или меньше n где m и n заданные натуральные числа 1<m<n. Нужно сделать это с помощью массива...

Сумма чисел Фибоначчи - C++
Надо сделать программу: вводится число с клавиатуры, это число должно быть ровно, как бы, количеству чисел Фибоначчи (это числа, начиная с...

Сумма n первых чисел Фибоначчи - C++
Сами числа Фибоначчи есть, #include <iostream.h> int main() { int n; int i,i1=1,i2=1; cout << "n="; ...

Посчитать первые числа Фибоначчи и показать, что сумма этих чисел кратна 11 - C++
Посчитать первые числа фибоначчи и показать, что сумма этих чисел кратно 11 и вывести результат на экран и записать в файл. #include...

Набрать с чисел Фибоначчи в интервале от 1 до 100, только просто числа, а также их порядковые номера в ряду Фибоначчи - C++
Помогите с задачкой Набрать с чисел Фибоначчи в интервале от 1 до 100, только просто числа, а также их порядковые номера в ряду...

Удалить строки, сумма цифр которых является числом Фибоначчи - C++
Задан двумерный массив целых чисел.Удалить те строки, которые сумма цифр которых я числом Фибоначчи Добавлено через 6 минут ...

2
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
08.11.2010, 08:39 #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
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
//////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iomanip>
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
#include <vector>
//////////////////////////////////////////////////////////////////////////////////////
typedef int                      T_num;
typedef std::vector<T_num>       T_nums;
typedef std::string              T_fib_expr;
typedef std::vector<T_fib_expr>  T_fib_expressions;
//////////////////////////////////////////////////////////////////////////////////////
T_nums  get_fib_nums(T_num  num)
{
    T_nums  fib_nums_res;
    fib_nums_res.push_back(1);
    fib_nums_res.push_back(2);
    while(fib_nums_res.back() < num)
    {
        fib_nums_res.push_back(*fib_nums_res.rbegin() + *(fib_nums_res.rbegin() + 1));
    }
    return  fib_nums_res;
}
//////////////////////////////////////////////////////////////////////////////////////
struct  T_get_fib_expr
{
    const T_nums  fib_nums_;
    //--------------------------------------------------------------------------------
    T_get_fib_expr(const T_nums&  fib_nums) : fib_nums_(fib_nums)
    {}
    //--------------------------------------------------------------------------------
    T_fib_expr  operator() (T_num  num) const
    {
        T_nums  fib_nums_for_expr;
        
        T_num   num_cur = num;
        for(T_nums::const_reverse_iterator  fib_num_rev_it = fib_nums_.rbegin();
            num && fib_num_rev_it != fib_nums_.rend(); ++fib_num_rev_it)
        {        
            if(num_cur >= *fib_num_rev_it)
            {
                num_cur -= *fib_num_rev_it;
                fib_nums_for_expr.push_back(*fib_num_rev_it);
            }
        }
        
        std::ostringstream  sout;   
 
        for(T_nums::const_reverse_iterator  
            fib_num_for_expr_rev_it = fib_nums_for_expr.rbegin();
            num && fib_num_for_expr_rev_it != fib_nums_for_expr.rend(); 
            ++fib_num_for_expr_rev_it)
        {
            if(fib_num_for_expr_rev_it == fib_nums_for_expr.rbegin())
            {
                sout << num                     
                     << "\t= ";
            }
            else
            {
                sout << "\t+ ";
            }
            sout << *fib_num_for_expr_rev_it;
        }
        return  sout.str();    
    }
};
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));       
    const T_num NUM_COUNT_MIN = 1;
    const T_num NUM_COUNT_MAX = 10;
    T_num  num_count = 0;
    do
    {
        std::cout << "Введите количество чисел "
                  << NUM_COUNT_MIN
                  <<" <= n <= "
                  << NUM_COUNT_MAX
                  <<": ";
        std::cin >> num_count;
    }while(num_count < NUM_COUNT_MIN
           || NUM_COUNT_MAX < num_count);
 
    const T_num NUM_MIN = 1;
    const T_num NUM_MAX = 1000;
 
    std::cout << std::endl
              << "Введите "
              << num_count
              << " натуральных чисел <= "
              << NUM_MAX
              << ":"
              << std::endl;
    
    T_nums  nums(num_count);
    for(T_num i = 0; i < num_count; ++i)
    {
        do
        {
            std::cout << "число"
                      << std::setw(3) << std::right << i + 1
                      << ": ";
 
            std::cin >> nums[i];
        }while(nums[i] < NUM_MIN
               || NUM_MAX < nums[i]);
    } 
    T_nums             fib_nums = get_fib_nums(*std::max_element(nums.begin(), nums.end()));
    T_fib_expressions  fib_expressions(num_count);
    std::transform(nums.begin(), nums.end(), 
                   fib_expressions.begin(), T_get_fib_expr(fib_nums));
 
    std::cout << std::endl
              << "Эти числа в виде суммы чисел Фибоначчи:"
              << std::endl;
    std::copy(fib_expressions.begin(), fib_expressions.end(), 
              std::ostream_iterator<T_fib_expressions::value_type>(std::cout, "\n"));
}
1
Glamuorama
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 5
10.11.2010, 16:08 #3
Помогите написать программу. Хотелось бы разобраться.

Вычислить сумму чисел ряда Фибоначчи с 5 по 12.

Распечатать числа ряда по 15-й и значение суммы.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2010, 16:08
Привет! Вот еще темы с ответами:

Определить в заданной последовательности целых чисел количество чисел Фибоначчи - C++
Выполнить задания, если задана последовательность целых чисел длиной n. Определить в заданной последовательности целых чисел количество...

Найти k-й член последовательности Фибоначчи; верно ли, что сумма первых n членов есть чётное число? - C++
Дано натуральное число n,n&gt;=3. 1)Найти k-й член последовательности Фибоначчи. 2)Получить первые n членов последовательности 3)Верно...

Поиск чисел Фибоначчи - C++
Доброго времени суток! Написал программку, которая находит значение n-элемента в последовательности Фибоначчи. Изначально в ней...

Количество чисел Фибоначчи - C++
#include&lt;iostream&gt; #include&lt;cmath&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;string&gt; #include&lt;set&gt; #include&lt;algorithm&gt; ...


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

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

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