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

Вычислить сумму последовательности из N элементов - C++

Восстановить пароль Регистрация
 
 
Iren1
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 91
23.01.2014, 00:22     Вычислить сумму последовательности из N элементов #1
Вычислить сумму последовательности из N элементов
условие на картинке
Дано натуральное n, действительные a1, a2,...,an
С помощью рекурсивной функции вычислить сумму

a1 * a2 + a2 * a3 + a3 * a4 + ... + an - 1 * an

спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2014, 00:22     Вычислить сумму последовательности из N элементов
Посмотрите здесь:

Вычислить сумму последовательности C++
C++ Найти сумму элементов последовательности, начиная от первого отрицательного элемента и до конца последовательности.
C++ вычислить сумму нечетных чисел среди заданной последовательности n целых
C++ 4. Найти сумму К членов последовательности: 3, 7, 11, 15,… Вычислить сумму членов последовательности 1, 4, 7, 10, …, не превосходящих числа К
Вычислить сумму степеней в последовательности чисел C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
23.01.2014, 01:15     Вычислить сумму последовательности из N элементов #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
#include <iostream>
using namespace std;
 
int msum(int n,int *arr)
{
    return (n>=2)?arr[n-1]*arr[n-2]+msum(n-2,arr):0;
}
 
int main()
{
    int n,*arr;
    cout << "Input n - ";
    cin >> n;
    arr = new int[n];
    for (int i = 0; i < n; i++)
    {
        cout << "Input " << i + 1 << "-th number - ";
        cin >> arr[i];
    }
    cout << "Msum = " << msum(n, arr) << endl;
    delete[] arr;
    system("pause");
    return 0;
}
Iren1
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 91
23.01.2014, 01:41  [ТС]     Вычислить сумму последовательности из N элементов #3
может я блондинка.. но она не так немного работает((
например..
мы вводим число н=3
и наши елементы вводим 1,2,3

тогда сумму оно должно считать 1*2+2*3 и это равно 8..а оно выдает 6((

и еще такой вопрос. а почему н>=2?? оно и 1 может быть равно..тогда сумма будет равна данному числу.. или я ошибаюсь?
Ev_Hyper
 Аватар для Ev_Hyper
1806 / 1627 / 435
Регистрация: 15.12.2013
Сообщений: 5,787
23.01.2014, 01:49     Вычислить сумму последовательности из N элементов #4
Iren1, если программа не так работает, это не означает, что вы блондинка. В следующий раз не делайте поспешных выводов, а попробуйте разобраться почему результат не такой.

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
#include <iostream>
using namespace std;
 
int msum(int n,int *arr)
{
    
    return (n>=2)?arr[n-1]*arr[n-2]+msum(n-1,arr):0;
}
 
int main()
{
    int n,*arr;
    cout << "Input n - ";
    cin >> n;
    arr = new int[n];
    for (int i = 0; i < n; i++)
    {
        cout << "Input " << i + 1 << "-th number - ";
        cin >> arr[i];
    }
    if(n==1){cout << "Msum = " << arr[0] << endl;}
    else
    cout << "Msum = " << msum(n, arr) << endl;
    delete[] arr;
    system("pause");
    return 0;
}
Iren1
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 91
23.01.2014, 01:51  [ТС]     Вычислить сумму последовательности из N элементов #5
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Iren1, В следующий раз не делайте поспешных выводов, а попробуйте разобраться почему результат не такой.
хорошо) а почему н>=2?? оно и 1 может быть равно..тогда сумма будет равна данному числу.. или я ошибаюсь?
Ev_Hyper
 Аватар для Ev_Hyper
1806 / 1627 / 435
Регистрация: 15.12.2013
Сообщений: 5,787
23.01.2014, 01:56     Вычислить сумму последовательности из N элементов #6
Iren1, может быть и 1 равно, но в таком случае здесь

C++
1
return (n>=2)?arr[n-1]*arr[n-2]+msum(n-1,arr):0;
первое условие:
C++
1
arr[n-1]*arr[n-2]+msum(n-1,arr)
выведет за границу массива: 1-2 = -1
поэтому ставиться условие >=2.

Значит надо либо делать проверку до первого вызова функции, или перестраивать её по-другому.
Iren1
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 91
23.01.2014, 01:57  [ТС]     Вычислить сумму последовательности из N элементов #7
сорри. запустила. кажись поняла))

Добавлено через 44 секунды
спасибо
Ev_Hyper
 Аватар для Ev_Hyper
1806 / 1627 / 435
Регистрация: 15.12.2013
Сообщений: 5,787
23.01.2014, 01:59     Вычислить сумму последовательности из N элементов #8
Цитата Сообщение от Iren1 Посмотреть сообщение
сорри. запустила. кажись поняла))
это же форум, тут и надо спрашивать если что-то не получается
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
23.01.2014, 01:59     Вычислить сумму последовательности из N элементов #9
C++
1
return (n > 1) ? arr[n - 1] * arr[n - 2] + msum(n - 1, arr) : 0;
Я понял немного напутал.
Iren1
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 91
23.01.2014, 02:00  [ТС]     Вычислить сумму последовательности из N элементов #10
еще такой вопрос.. у нас числа которые мы вводим..а1,а2... они должны быть дийсни.. на русском вроде действительные.. как это записать? а то у нас они целые
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
23.01.2014, 02:03     Вычислить сумму последовательности из N элементов #11
Цитата Сообщение от Iren1 Посмотреть сообщение
а1,а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
#include <iostream>
using namespace std;
 
double msum(int n,double *arr)
{
    return (n > 1) ? arr[n - 1] * arr[n - 2] + msum(n - 1, arr) : 0;
}
 
int main()
{
    int n;
    double *arr;
    cout << "Input n - ";
    cin >> n;
    arr = new double[n];
    for (int i = 0; i < n; i++)
    {
        cout << "Input " << i + 1 << "-th number - ";
        cin >> arr[i];
    }
    cout << "Msum = " << msum(n, arr) << endl;
    delete[] arr;
    system("pause");
    return 0;
}
Бедел
 Аватар для Бедел
232 / 28 / 4
Регистрация: 04.06.2010
Сообщений: 283
23.01.2014, 02:06     Вычислить сумму последовательности из N элементов #12
Цитата Сообщение от Iren1 Посмотреть сообщение
на русском вроде действительные.. как это записать?
Просто измените тип массива с int на float.
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
23.01.2014, 02:10     Вычислить сумму последовательности из N элементов #13
Цитата Сообщение от Alex566 Посмотреть сообщение
Я понял немного напутал
А если n == 1 ? Нужно еще проверку вставить

Добавлено через 2 минуты
C++
1
return (n > 1) ? arr[n - 1] * arr[n - 2] + msum(n - 1, arr) : arr[0];
вот так что-ли
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
23.01.2014, 02:10     Вычислить сумму последовательности из N элементов #14
Цитата Сообщение от gromo Посмотреть сообщение
А если n == 1 ? Нужно еще проверку вставить
Числовой ряд н1*н2+н2*н3... Число в любом случае должно быть на что-то умножено. Если оно одно то и умножать его не на что.
Iren1
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 91
23.01.2014, 02:11  [ТС]     Вычислить сумму последовательности из N элементов #15
[QUOTE=gromo;5680264]А если n == 1 ? Нужно еще проверку вставить

C
1
if(n==1){cout << "Msum = " << arr[0] << endl;}
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
23.01.2014, 02:12     Вычислить сумму последовательности из N элементов #16
Цитата Сообщение от gromo Посмотреть сообщение
вот так что-ли
В таком случае результат будет возвращать н1*н2+н2*н3+н1.
Ev_Hyper
 Аватар для Ev_Hyper
1806 / 1627 / 435
Регистрация: 15.12.2013
Сообщений: 5,787
23.01.2014, 02:13     Вычислить сумму последовательности из N элементов #17
Alex566, в таком случае вы вообще не должны вызывать функцию, так как сумма не будет равна 0

Цитата Сообщение от gromo Посмотреть сообщение
вот так что-ли
не так. У вас при первом тестовом примере ТС неверный результат выдаст.
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
23.01.2014, 02:23     Вычислить сумму последовательности из N элементов #18
Ну так функция вроде как и не должна вызываться если всего 1 число.
Цитата Сообщение от Iren1 Посмотреть сообщение
a1 * a2 + a2 * a3 + a3 * a4 + ... + an - 1 * an
В любом случае должно быть an - 1 * an
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
23.01.2014, 02:25     Вычислить сумму последовательности из N элементов #19
Цитата Сообщение от Alex566 Посмотреть сообщение
В таком случае результат будет возвращать н1*н2+н2*н3+н1.
Да уж, перепутал.

Добавлено через 1 минуту
Цитата Сообщение от Alex566 Посмотреть сообщение
Ну так функция вроде как и не должна вызываться если всего 1 число.
Условие немного неправильное, нужно "дано натуральное число >= 2".
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2014, 21:14     Вычислить сумму последовательности из N элементов
Еще ссылки по теме:

Вычислить сумму произведений членов последовательности, найти максимумы и минимумы C++
C++ Вычислить сумму последовательности
C++ Вычислить сумму последовательности

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

Или воспользуйтесь поиском по форуму:
natashabevz
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 13
23.01.2014, 21:14     Вычислить сумму последовательности из N элементов #20
А мне нужна такая программа только через prinf и scanf
Yandex
Объявления
23.01.2014, 21:14     Вычислить сумму последовательности из N элементов
Ответ Создать тему
Опции темы

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