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

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

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

Рекурсивная функция для вычисления арифметической функции - C++

06.09.2014, 19:34. Просмотров 396. Ответов 7
Метки нет (Все метки)

Доброго время суток. Требуется построить рекурсивную функцию, реализующую вычисление арифметической функции:X1 * X2.
С одноместными функциями всё понятно, но с двухместной вообще неразбериха. Даже не представляю с чего начать. Подскажите, пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2014, 19:34     Рекурсивная функция для вычисления арифметической функции
Посмотрите здесь:

Рекурсивная функция для вычисления суммы элементов арифметической прогрессии - C++
#include <stdio.h> #include <conio.h> int pr(int n, int a1, int d,int sum) { if(n==1) return a1; sum=a1+(n-1)*d+pr(n-1,a1,d); ...

Рекурсивная функция для вычисления по заданной формуле - C++
Напишите функцию, вычисляющую xn без использования цикла, где n – некоторое натуральное число, вводимое в качестве аргумента функции, а...

Рекурсивная функция нахождения суммы арифметической прогрессии - C++
Помогите. Не понимаю как написать. Даны первый член и разницу арифметической прогрессии. Написать рекурсивной функцию для...

Рекурсивная функция для вычисления индекса максимального элемента массива - C++
Написать рекурсивную функцию для вычисления индекса максимального элемента массива из n элементов

Рекурсивная функция для вычисления наибольшего значения в одномерном массиве - C++
для вычисления наибольшего значения в одномерном массиве

Рекурсивная функция для вычисления количества цифр натурального числа - C++
Нужно написать рекурсивную функцию для вычисления количества цифр натурального числа. Подскажите какой алгоритм нужен, для обычного...

Рекурсивная функция вычисления - C++
Привет , помоги пожалуйста написать программу рекурсивная функция вычисления: (x+N)(x+N-1)(x+N-2)...(x+1) на c++, Спасибо . ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dani
1300 / 637 / 56
Регистрация: 11.08.2011
Сообщений: 2,280
Записей в блоге: 2
Завершенные тесты: 1
06.09.2014, 19:50     Рекурсивная функция для вычисления арифметической функции #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
 
unsigned multiply(unsigned x1, unsigned x2)
{
    if(x1==0)
        return 0;
    return multiply(x1-1, x2) + x2;
}
 
 
int main()
{
    std::cout << multiply(5, 6) << std::endl;
    return 0;
}
Georguy
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 33
06.09.2014, 20:01  [ТС]     Рекурсивная функция для вычисления арифметической функции #3
Ох, спасибо за код огромное. Можете немного добавить комментариев, а то не особо понятно к чему "+" в возвращении функции. Ну и что бы раз и навсегда разобраться?
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
06.09.2014, 20:53     Рекурсивная функция для вычисления арифметической функции #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Georguy Посмотреть сообщение
а то не особо понятно к чему "+" в возвращении функции.
Умножение через сложение представить не можете?
_Ivana
3042 / 1729 / 150
Регистрация: 01.03.2013
Сообщений: 4,908
Записей в блоге: 2
06.09.2014, 20:57     Рекурсивная функция для вычисления арифметической функции #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Georguy Посмотреть сообщение
С одноместными функциями всё понятно, но с двухместной вообще неразбериха. Даже не представляю с чего начать. Подскажите, пожалуйста.
Если ситуация с вашим пониманием действительно такова, как вы ее описали, тогда сделайте с "одножоместной" функцией. Cделайте x2 глобальной переменной, ее не надо будет передавать в качестве параметра в рекурсивную функцию, напишите код (раз вам все понятно). Покажите ваш код сюда.
Georguy
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 33
07.09.2014, 11:08  [ТС]     Рекурсивная функция для вычисления арифметической функции #6
Ну как-то так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
using namespace std;
 
short x2 = 6;
 
int recursion(short x1){
    if (x1 == 0)
        return 0;
    return recursion(x1 - 1) + x2;
}
 
int main(){
    int y = recursion(5);
        cout << y << endl;
    system("pause");
    return 0;
}
_Ivana
3042 / 1729 / 150
Регистрация: 01.03.2013
Сообщений: 4,908
Записей в блоге: 2
07.09.2014, 14:48     Рекурсивная функция для вычисления арифметической функции #7
Georguy, хорошо, а я уже думал что вы лукавили, когда утверждали что вам все понятно с "одноместной" функцией. Правда ваш код как две капли воды похож на код Dani, с точностью до форматирования, и судя по предыдущим постам вы испытывали трудности в представлении умножения через сложение, но допустим вы действительно сами написали и понимаете ваш код. А теперь внимание, вопрос - чем он отличается принципиально от кода Dani? Есть второй параметр у функции, он передается по значению (надеюсь, вы в курсе что это такое), при этом в теле самой функции он никак не изменяется, и при следующем рекурсивном вызове его значение транзитом катится вглубь рекурсии, бесполезно пожирая стек, но мы на это закрываем глаза. И в данном случае с точки зрения результата все равно, как мы во вложенных уровнях вызова получаем наше х2 - через глобальную переменную, или переданную параметром по значению или параметром по ссылке.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.09.2014, 15:30     Рекурсивная функция для вычисления арифметической функции
Еще ссылки по теме:

Рекурсивная функция вычисления факториала - C++
Напишите рекурсивную функцию int factorial(int n), которая считает факториал. примеры 1)5 120 2)0 1 3)2 2

Рекурсивная функция вычисления выражения - C++
Помогите пожалуйста с задачкой по рекурсии Рекурсивная функция вычисления: \left(a*x+b \right)*\left(\left(a-1 \right)*x+b-1...

Рекурсивная функция вычисления факториала - C++
В коде #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &quot;fact.h&quot; int main() { using namespace std; cout&lt;&lt;&quot;Enter the...

Рекурсивная функция вычисления длины строки - C++
Помогите пожалуйста решить задачу по программированию. Напишите рекурсивную функцию вычисления длины строки. Заранее благодарен.

Рекурсивная функция вычисления суммы бесконечного ряда - C++
Всем привет) Объясните кто нибудь как это можно сделать?)


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

Или воспользуйтесь поиском по форуму:
Georguy
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 33
07.09.2014, 15:30  [ТС]     Рекурсивная функция для вычисления арифметической функции #8
Цитата Сообщение от _Ivana Посмотреть сообщение
Georguy, хорошо, а я уже думал что вы лукавили, когда утверждали что вам все понятно с "одноместной" функцией. Правда ваш код как две капли воды похож на код Dani, с точностью до форматирования, и судя по предыдущим постам вы испытывали трудности в представлении умножения через сложение, но допустим вы действительно сами написали и понимаете ваш код. А теперь внимание, вопрос - чем он отличается принципиально от кода Dani? Есть второй параметр у функции, он передается по значению (надеюсь, вы в курсе что это такое), при этом в теле самой функции он никак не изменяется, и при следующем рекурсивном вызове его значение транзитом катится вглубь рекурсии, бесполезно пожирая стек, но мы на это закрываем глаза. И в данном случае с точки зрения результата все равно, как мы во вложенных уровнях вызова получаем наше х2 - через глобальную переменную, или переданную параметром по значению или параметром по ссылке.
На данном этапе изучения я еще не знакомился со стеком, так что не обессудьте.
Yandex
Объявления
07.09.2014, 15:30     Рекурсивная функция для вычисления арифметической функции
Ответ Создать тему
Опции темы

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