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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Snayper
0 / 0 / 0
Регистрация: 20.11.2009
Сообщений: 21
07.11.2010, 16:56     Сумма чисел Фибоначчи #1
здраствуйте, я только начинаю осваивать этот язык и очень нужна помощь. Дали задачку, а я понятия не имею что и как писать.
Миниатюры
Сумма чисел Фибоначчи  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2010, 16:56     Сумма чисел Фибоначчи
Посмотрите здесь:

C++ Сумма n первых чисел Фибоначчи
Сумма чисел Фибоначчи!!! C++
Удалить строки, сумма цифр которых является числом Фибоначчи C++
C++ Набрать с чисел Фибоначчи в интервале от 1 до 100, только просто числа, а также их порядковые номера в ряду Фибоначчи
C++ Сформировать n чисел Фибоначчи
C++ Посчитать первые числа Фибоначчи и показать, что сумма этих чисел кратна 11
Сумма чисел Фибоначчи C++
Сумма чисел Фибоначчи C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.X
Эксперт С++
 Аватар для Mr.X
2799 / 1575 / 246
Регистрация: 03.05.2010
Сообщений: 3,656
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"));
}
Glamuorama
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 5
10.11.2010, 16:08     Сумма чисел Фибоначчи #3
Помогите написать программу. Хотелось бы разобраться.

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

Распечатать числа ряда по 15-й и значение суммы.
Yandex
Объявления
10.11.2010, 16:08     Сумма чисел Фибоначчи
Ответ Создать тему
Опции темы

Текущее время: 06:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru