Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
ARTER616
0 / 0 / 3
Регистрация: 14.01.2017
Сообщений: 261
#1

Необходимо найти сумму всех чисел в последовательности Фибоначчи, не превосходящих введенного числа n - C++

17.02.2017, 17:44. Просмотров 474. Ответов 11
Метки нет (Все метки)

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

Формат входных данных

В программу вводится одно целое число nn (1≤n≤2^15−1).
Формат выходных данных

Требуется вывести сумму всех чисел последовательности, не превосходящих n.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2017, 17:44
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Необходимо найти сумму всех чисел в последовательности Фибоначчи, не превосходящих введенного числа n (C++):

4. Найти сумму К членов последовательности: 3, 7, 11, 15,… Вычислить сумму членов последовательности 1, 4, 7, 10, …, не превосходящих числа К
надо консольное приложение , без рандомайза функций и процедур в делфи

Найти сумму чисел Фибоначчи в последовательности
Помогите, пожалуйста решить : Задана последовательность чисел, которая...

Посчитать количество чисел Фибоначчи не превосходящих заданого числа
Посчитать количество чисел Фибоначчи,которые не превосходят заданого числа....

Разделить сумму членов последовательности не превосходящих 1 на сумму превосходящих
Даны натуральное число n и действительные числа x1,x2,x3,...,Xn. Получить...

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

Найти сумму чисел Фибоначчи до числа n через рекурсию
Добрый вечер, можете пожалуйста помочь написать рекурсивную функцию для...

11
alex white
227 / 186 / 80
Регистрация: 27.06.2016
Сообщений: 540
Завершенные тесты: 1
17.02.2017, 19:45 #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
#include <iostream>
using namespace std;
 
int main()
{
    int limit = 0;
 
    cout << "Enter limit: ";
    cin >> limit;
    if(limit < 1 || limit > 16535)
    {
        cout << "Expected 0 < n < 2^15 got n = " << limit << endl;
        return -1;
    }
 
    int sum = 0;
 
    int current = 1;
    int next = 1;
    while(current <= limit)
    {
       sum += current;
       int tmp = current;
       current = next;
       next = tmp + next;
    }
 
    cout << "Result: " << sum << endl;
    return 0;
}
0
Байт
Эксперт C
17770 / 11795 / 2450
Регистрация: 24.12.2010
Сообщений: 23,716
17.02.2017, 19:52 #3
alex white, переполнение целого типа легко ловится по таким условиям.
Для чисел со знаком - сумма положительных отрицательна
Для чисел без знака - сумма меньше одного из слагаемых
0
MrGluck
Модератор
Эксперт CЭксперт С++
8022 / 4865 / 1425
Регистрация: 29.11.2010
Сообщений: 13,246
17.02.2017, 19:55 #4
Цитата Сообщение от alex white Посмотреть сообщение
limit > 16535
2^15−1 = 65535, однако
0
Байт
Эксперт C
17770 / 11795 / 2450
Регистрация: 24.12.2010
Сообщений: 23,716
17.02.2017, 19:55 #5
Цитата Сообщение от MrGluck Посмотреть сообщение
Вы хоть представляете, чему равно число Фибоначчи от 65535
Дык, а оно здесь совершенно не при чем
0
MrGluck
17.02.2017, 19:55
  #6

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
Дык, а оно здесь совершенно не при чем
Да я уже понял

0
Байт
Эксперт C
17770 / 11795 / 2450
Регистрация: 24.12.2010
Сообщений: 23,716
17.02.2017, 19:57 #7
Цитата Сообщение от MrGluck Посмотреть сообщение
2^15−1 = 65535, однако
= 216 - 1
215 = 25*210 = 32 * 1024
2
MrGluck
Модератор
Эксперт CЭксперт С++
8022 / 4865 / 1425
Регистрация: 29.11.2010
Сообщений: 13,246
17.02.2017, 20:02 #8
Да, ошибся со степенью двойки.
Я как первоклассник, считаю только по пальцам до 2^10, а дальше фейл.

Добавлено через 34 секунды
Меня ещё смутило 535 на конце
0
alex white
227 / 186 / 80
Регистрация: 27.06.2016
Сообщений: 540
Завершенные тесты: 1
17.02.2017, 20:03 #9
Байт,
Цитата Сообщение от Байт Посмотреть сообщение
переполнение целого типа легко ловится по таким условиям.
Для чисел со знаком - сумма положительных отрицательна
Для чисел без знака - сумма меньше одного из слагаемых
См. условие задачи.

Цитата Сообщение от Байт Посмотреть сообщение
215 = 25*210 = 32 * 1024
Тут я упоролся. Спасибо.
0
MrGluck
Модератор
Эксперт CЭксперт С++
8022 / 4865 / 1425
Регистрация: 29.11.2010
Сообщений: 13,246
17.02.2017, 20:11 #10

Не по теме:

Цитата Сообщение от alex white Посмотреть сообщение
Тут я упоролся. Спасибо.
Ещё и мне отсыпал. Убойная была трава.



Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main()
{
    constexpr int A000045[] = {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610,
        987, 1597, 2584, 4181, 6765, 10946, 17711, 28657}, sz = sizeof(A000045) / sizeof(*A000045);
    int N, sum = 0;
    std::cin >> N;
    for (int i = 0; i < sz && A000045[i] <= N; i++)
        sum += A000045[i];
    std::cout << sum << std::endl;
}
0
ARTER616
0 / 0 / 3
Регистрация: 14.01.2017
Сообщений: 261
17.02.2017, 20:13  [ТС] #11
У alex white все работает... Там только при вводе 32767 выдает 32767, а по условию задачи не должно ничего вывести.
0
Байт
Эксперт C
17770 / 11795 / 2450
Регистрация: 24.12.2010
Сообщений: 23,716
17.02.2017, 20:40 #12
Цитата Сообщение от alex white Посмотреть сообщение
См. условие задачи.
Да я не к задаче, вовсе. Думал, может любопытно будет. Делюсь опытом, так сказать...
0
17.02.2017, 20:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2017, 20:40
Привет! Вот еще темы с решениями:

Найти сумму чисел Фибоначчи меньше заданного числа Q
Помогите исправить. #include&lt;iostream&gt; using namespace std; int main() {...

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

Вывести сумму всех четных чисел не превосходящих заданное число
Дано n значное число типа longint. 1.Число спросить у пользователя и...

Найти сумму всех элементов последовательности, больших заданного числа b
Здравствуйте помогите пожалуйста написать код!Заранее спасибо)) Дана...


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

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

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