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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 5.00
Filipo4ka
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 9
#1

Вычислить сумму всех чисел Фибоначчи, которые не превосходят 1000 - C++

31.03.2014, 20:10. Просмотров 2304. Ответов 19
Метки нет (Все метки)

Дорогие программисты, помогите мне с такой вот задачкой, никак не могу решить.Написать на с++

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

Вычислить сумму всех чисел Фибоначчи, которые не превосходят 100 - C++
Здравствуйте. Помогите, пожалуйста, в написании алгоритма на C++. Числа Фиббоначчи { F } определяются по формулам F = F = 1; F = F + F...

Вычислить сумму всех чисел Фибоначи, которые не превосходят 100. - C++
Вычислить сумму всех чисел Фибоначи, которые не превосходят 100. числа фибоначи: 1, 1, 2,3,5,8,13,21,34,55,89. ЗАРАНЕЕ БЛАГОДАРЮ.МИР!!!

Вычислить сумму всех чисел Фибоначчи, которые не превышают n - C++
Вот попроси ли написать несколько простых программок, алгоритм понимаю, а синтаксис вспомнить не могу, институт давно закончил а с...

Вычислить сумму всех четных чисел от 2 до 1000 - C++
Вычислить сумму всех четных чисел от 2 до 1000. Помогите решить задачу plz

Вычислить сумму всех чисел Фибоначчи - C++
Задача состоит в том,чтобы вычислить сумму всех чисел Фибоначчи, которые не превосходят заданного натурального числа М и она должна быть на...

Вычислить сумму всех чисел Фибоначчи не превышающих N - C++
Дано натуральное число N > 10 . Вычислить сумму всех чисел Фибоначчи которые не превышают N . Числа Фибоначчи образуются по закону : ...

19
MastAKK
145 / 136 / 12
Регистрация: 13.10.2012
Сообщений: 592
31.03.2014, 20:30 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот, возникнуть вопросы - спрашивайте.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
int main() {
    int last = 0, next = 1;
    unsigned long sum = 1;
    
    for(int i = 0; i < 1000; ++i){
        next += last;
        last = next - last;
        sum += next;
    }
    std::cout << sum;
    return 0;
}


Добавлено через 1 минуту
Упс, неправильно условия прочитал. Сейчас исправлю

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main() {
    int last = 0, next = 1;
    long sum = 1;
    
    for(; next < 1000; next += last){
        last = next - last;
        sum += next;
    }
    std::cout << sum;
    return 0;
}
Вот
1
Ezembi
100 / 87 / 3
Регистрация: 29.05.2013
Сообщений: 227
31.03.2014, 20:41 #3
Лаконичней
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <conio.h>
 
int blocRec(int n)
{
    if(n<=1)
        return 1;
    return blocRec(n-1) + blocRec(n-2);
}
 
int main()
{
    printf("%d\n",blocRec(17));
    getch();
    return 0;
}
Добавлено через 2 минуты
ну может кому рекурсионный вариант нужен будет
0
KOPOJI
Эксперт HTML/CSSЭксперт PHP
16701 / 6623 / 433
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
31.03.2014, 21:09 #4
Ezembi, MastAKK, а почему так много получается? Вроде, лишняя итерация у вас. В задании указано
Цитата Сообщение от Filipo4ka Посмотреть сообщение
сумму всех чисел фибоначчи которые не превосходят 1000
Последние числа фибоначчи - это 610 и 987. Как из их суммы может получиться 2584 ? Или я неверно понял задание?

Добавлено через 2 минуты

Не по теме:

видимо, неверно..

0
Ezembi
100 / 87 / 3
Регистрация: 29.05.2013
Сообщений: 227
31.03.2014, 21:10 #5
Цитата Сообщение от KOPOJI Посмотреть сообщение
987
Ок, исправился =)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <conio.h>
 
int blocRec(int n)
{
    if(n<=1)
        return 1;
    return blocRec(n-1) + blocRec(n-2);
}
 
int main()
{
    printf("%d\n",blocRec(15));
    getch();
    return 0;
}
0
Filipo4ka
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 9
31.03.2014, 21:11  [ТС] #6
я не знаю, то есть не так??а как тогда верно будет?
0
KOPOJI
31.03.2014, 21:15
  #7

Не по теме:

а, не, все верно, я неправильно понял задание))

0
Ezembi
100 / 87 / 3
Регистрация: 29.05.2013
Сообщений: 227
31.03.2014, 21:16 #8
Цитата Сообщение от KOPOJI Посмотреть сообщение
Последние числа фибоначчи - это 610 и 987. Как из их суммы может получиться 2584 ? Или я неверно понял задание?
Да вроде норм =)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <conio.h>
 
int blocRec(int n)
{
    if(n<=1)
        return 1;
    return blocRec(n-1) + blocRec(n-2);
}
 
int main()
{
    int sum = 0;
    for(int i=0;blocRec(i)<1000;i++)
    {
        printf("%d\n",blocRec(i));
        sum+=blocRec(i);
    }
    printf("sum = %d\n",sum);
    getch();
    return 0;
}
0
Изображения
 
KOPOJI
31.03.2014, 21:17
  #9

Не по теме:

Ну да, я об этом уже написал выше..

0
Filipo4ka
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 9
31.03.2014, 21:19  [ТС] #10
хорошо, а как теперь эту задачку оформить с использованием функций. Нахождение основных значений оформить через функцию RESHENIE(), ввод данных и вывод на печать через функцию MAIN()
0
KOPOJI
Эксперт HTML/CSSЭксперт PHP
16701 / 6623 / 433
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
31.03.2014, 21:22 #11
Filipo4ka, это одно задание или несколько?

Добавлено через 37 секунд
Цитата Сообщение от Filipo4ka Посмотреть сообщение
а как теперь
вы уверены, что названия функций - капсом?
0
Catstail
Модератор
22831 / 11197 / 1812
Регистрация: 12.02.2012
Сообщений: 18,439
31.03.2014, 21:26 #12
Хотя для чисел, не превышающих 1000 это не столь и важно, но алгоритм Ezembi нерационален, поскольку происходит многократное перевычисление одного и того же... Вот так менее наглядно, но быстрее:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream.h>
 
long int SumFib(long int z, long int c=1, long int p=1, long int s=2)
{
    if (c > z)
        return s;
    else
        return SumFib(z, c+p,c, s+c);
}
 
int main(int argc, char* argv[])
{
    cout << SumFib(1000) << endl;
    return 0;
}
0
KOPOJI
Эксперт HTML/CSSЭксперт PHP
16701 / 6623 / 433
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
31.03.2014, 21:36 #13
Только неправильно изначальная сумма задана. Ну и, else, также как и явное указание long int, имхо, лишнее
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
 
long SumFib(long z, long c=1, long p=1, long s=1)
{
    if (c > z)
        return s;
    return SumFib(z, c+p,c, s+c);
}
 
int main(int argc, char *argv[])
{
    std::cout << SumFib(1000) << std::endl;
    return 0;
}
1
Filipo4ka
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 9
31.03.2014, 21:39  [ТС] #14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
 
long SumFib(long z, long c=1, long p=1, long s=1)
{
    if (c > z)
        return s;
    return SumFib(z, c+p,c, s+c);
}
 
int main(int argc, char* argv[])
{
    std::cout << SumFib(1000) << std::endl;
    return 0;
}
эта задача через функцию да??то есть удовлетворяет это условие?

оформить с использованием функций. Нахождение основных значений оформить через функцию RESHENIE(), ввод данных и вывод на печать через функцию MAIN()
0
KOPOJI
Эксперт HTML/CSSЭксперт PHP
16701 / 6623 / 433
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
31.03.2014, 21:44 #15
Да почти все примеры в теме через отдельную функцию. Только, еще раз, вы уверены насчет капса названий функций? Если вы переименуете main в MAIN, то будет не очень хорошо.....
0
31.03.2014, 21:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2014, 21:44
Привет! Вот еще темы с ответами:

Вычислить сумму тех из m элементов, которые превосходят по величине все элементы, расположенные ниже главной диагонали - C++
Дана действительная квадратная матрица порядка n. Вычислить сумму тех из m элементов, расположенных по главной диагонали выше неё, которые...

Квадратная матрица: Вычислить сумму элементов, расположенных на главной диагонали и выше, которые превосходят все элементы - C++
Помогите, пожалуйста, решить это задание! Плохо понимаю, как работать с массивами в C++ Дана действительная квадратная матрица порядка...

Вывести на экран сумму чисел от 0 до 1000, которые делятся нацело на 3 или 5 - C++
Решила сделать задачку: Вывести на экран сумму чисел от 0 до 1000 , что делятся нацело на 3 или 5 . Но как всегда не правильно сделала,...

Ввести одномерный массив из n элементов. Вычислить сумму всех отрицательных чисел, их количество и сумму всех - C++
Ввести одномерный массив из n элементов. Вычислить сумму всех отрицательных чисел, их количество и сумму всех положительных чисел. Вот...


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

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

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