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

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

Войти
Регистрация
Восстановить пароль
 
 
Iren1
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 91
#1

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

23.01.2014, 00:22. Просмотров 882. Ответов 24
Метки нет (Все метки)

Вычислить сумму последовательности из N элементов
условие на картинке
Дано натуральное n, действительные a1, a2,...,an
С помощью рекурсивной функции вычислить сумму

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

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

Вычислить среднее арифметическое, сумму элементов и количество элементов заданной последовательности - C++
Ваести значения для Х. Значения Х>0 , поэтому для окончания вычисления ввести число 0. Вычислить сумму всех значении Х и количество Х....

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

Найти сумму элементов последовательности, начиная от первого отрицательного элемента и до конца последовательности. - C++
Помогите написать простенькую программку :( Найти сумму элементов последовательности x1, x2, …, xn (x<=30), начиная от первого...

Вычислить сумму последовательности - C++
Даны действительные числа а1, а2 , .Известно, что а1 > 0 и что среди а2, а3 , .есть хотя бы одно отрицательное число . Пусть a1 , .an -...

Вычислить сумму последовательности - C++
Даны действительные числа а1, а2 , .Известно, что а1 > 0 и что среди а2, а3 , .есть хотя бы одно отрицательное число . Пусть a1 , .an -...

Вычислить сумму последовательности - C++
S= sinX + sinX2(квадрат) + SinX3(куб) + sinX4(в четвертой степени) + … + sinXn(н-ая степень)

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
23.01.2014, 01:15 #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;
}
0
Iren1
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 91
23.01.2014, 01:41  [ТС] #3
может я блондинка.. но она не так немного работает((
например..
мы вводим число н=3
и наши елементы вводим 1,2,3

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

и еще такой вопрос. а почему н>=2?? оно и 1 может быть равно..тогда сумма будет равна данному числу.. или я ошибаюсь?
0
Ev_Hyper
Заблокирован
23.01.2014, 01:49 #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;
}
1
Iren1
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 91
23.01.2014, 01:51  [ТС] #5
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Iren1, В следующий раз не делайте поспешных выводов, а попробуйте разобраться почему результат не такой.
хорошо) а почему н>=2?? оно и 1 может быть равно..тогда сумма будет равна данному числу.. или я ошибаюсь?
0
Ev_Hyper
Заблокирован
23.01.2014, 01:56 #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.

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

Добавлено через 44 секунды
спасибо
0
Ev_Hyper
Заблокирован
23.01.2014, 01:59 #8
Цитата Сообщение от Iren1 Посмотреть сообщение
сорри. запустила. кажись поняла))
это же форум, тут и надо спрашивать если что-то не получается
2
Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
23.01.2014, 01:59 #9
C++
1
return (n > 1) ? arr[n - 1] * arr[n - 2] + msum(n - 1, arr) : 0;
Я понял немного напутал.
1
Iren1
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 91
23.01.2014, 02:00  [ТС] #10
еще такой вопрос.. у нас числа которые мы вводим..а1,а2... они должны быть дийсни.. на русском вроде действительные.. как это записать? а то у нас они целые
0
Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
23.01.2014, 02:03 #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;
}
0
Бедел
233 / 29 / 4
Регистрация: 04.06.2010
Сообщений: 286
23.01.2014, 02:06 #12
Цитата Сообщение от Iren1 Посмотреть сообщение
на русском вроде действительные.. как это записать?
Просто измените тип массива с int на float.
0
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
23.01.2014, 02:10 #13
Цитата Сообщение от Alex566 Посмотреть сообщение
Я понял немного напутал
А если n == 1 ? Нужно еще проверку вставить

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

C
1
if(n==1){cout << "Msum = " << arr[0] << endl;}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2014, 02:11
Привет! Вот еще темы с ответами:

Вычислить сумму последовательности - C++
Составьте программу вычисления значения выражения для данного натурального числа N: 1³ + 2³ + 3³ + … + N³.

За счёт адресной арифметики посчитать сумму элементов последовательности из 15 элементов символьного типа - C++
Привет всем,помогите,пожалуйста :) За счёт адресной аремфметики посчитать сумму элементов последовательности из 15 элементов символичного...

Вычислить сумму степеней в последовательности чисел - C++
Помогите решить пожалуйста: Вводятся натуральные числа m, n и целые числа a1...an.Вычислить b1+...+bm, где: b1=a1+a2+...+an ; ...

Рекурсия: вычислить сумму членов заданной последовательности - C++
Составить программу с использованием рекурсивной функции, в которой вычислить сумму 12 членов рекурсивной последовательности Х0=1; Х1=1;...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.01.2014, 02:11
Ответ Создать тему
Опции темы

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