Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 12
1

Рекурсивная функция

25.06.2017, 16:10. Показов 607. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Мне необходимо составить рекурсивную и нерекурсивную функцию для следующей задачи: найти сумму 12+22+42+72+112... (n слагаемых).
Я смогла сделать только нерекурсивную функцию, а как сделать рекурсивную не понимаю ((
Помогите, пожалуйста, дописать программу.
Вот сама программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream.h>
#include<math.h>
#include<windows.h>
int summa (int n);
int summa1 (int n);
int main(){
int n;
cout<<"n=";
cin>>n;
cout<<summa(n)<<"\n";
cout<<summa1(n)<<"\n";
system("pause");
return 0;
int summa (int n){
int a=0, v=1, sum=0;
for (int m=0; m<n; m++){
v=v+a;
sum=sum+v*v;
a++;}
return sum;}
int summa1(int n)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.06.2017, 16:10
Ответы с готовыми решениями:

Рекурсивная функция
Нужно написать рекурсивнюю функцию сложения двух чисел, используя только прибавление единицы.

Рекурсивная функция C++
Сосчитать f(y)=3y+5, yk - входное данное.

Рекурсивная функция
Здравствуйте! Осваиваю рекурсивные функции на C++ Написал классический алгоритм (динамическое...

рекурсивная функция
Разработать рекурсивную функцию, удаляющую из строки все лишние пробелы. Пробелы считаются лишними,...

2
71 / 71 / 55
Регистрация: 04.06.2016
Сообщений: 237
25.06.2017, 18:30 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 int summa1(int n)
        {
            int sum = 0;
            if (n == 1)
            {
                return 1;
               
            }
            else
            {
               
                int a = 0;int v = 1;
                for (int m = 0; m < n; m++)
                {
                    v = v + a;
                    a++;
                }
                sum = summa1(n - 1) + v*v;
                    return sum;
            }
                
        }
Добавлено через 8 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        int summa1(int n)
        {
            int sum = 0;
            if (n == 1)
            {
                return 1;
               
            }
            else
            {
                int v = GetV(n);
                sum = summa1(n - 1) + v*v;
                    return sum;
            }
                
        }
        int GetV(int n)
        {
            if (n == 1) return 1;
            else return GetV(n - 1) + n-1;
        }
Вот получше вариант,здесь все циклы убраны.
0
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 12
25.06.2017, 18:37  [ТС] 3
Спасибо большое))
0
25.06.2017, 18:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2017, 18:37
Помогаю со студенческими работами здесь

Рекурсивная функция
Есть произведение n сомножителей вида (2*2)/(1*3) * (4*4)/(3*5) * ... Если не сложно, где я сделал...

Рекурсивная функция
Пожалуйста как сделать рекурсию функции my_ln? int main() { setlocale(LC_ALL,...

Рекурсивная функция
Как мне оформить в рекурсивную функцию? Напишите код пожалуйста, буду благодарен)) #include...

Рекурсивная функция
#include &lt;iostream&gt; void countdown(int n); void main() { countdown(4); // вызов рекурсивной...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru