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

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

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

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

26.05.2013, 14:43. Просмотров 324. Ответов 5
Метки нет (Все метки)

Написать рекурсивную фукцию вычисления Рекурсивная функция
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2013, 14:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсивная функция (C++):

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

Рекурсивная функция - C++
ПРивет всем! ребят помогите решать вот такую задачку: Используя команды write(x) лишь при х=0,1,…9 написать рекурсивную процедуру вывода...

Рекурсивная функция - C++
Нужно перемножить n последних элементов матрицы,используя метод рекурсии. Матрицу я нашел как сделал,вот #include <iostream> ...

Рекурсивная функция - C++
Задание: Составить программу для счисления сумы К членов строки, где К определяется ||Uk| -|Um||< е и е - наперед задана точность...

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
26.05.2013, 15:12 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 int main()
{
 setlocale(LC_ALL,"RUSSIAN");
 int n,result=1;
 cout<<"Количество элементов в массиве: ";
 cin>>n;
 int *p=new int[n];
 cout<<"Введите элементы массива: ";
 for(int i=0;i<n;i++)
 {
    cin>>p[i];
 }
 for(int i=0;i<n;i=i+2)
 {
    result*=p[i];
 }
 cout<<"Результат: "<<result<<endl;
 system("pause");
 return 0;
 }
если я правильно понял то посчитать произведение четных элементов массива.
1
EdDo
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 15
26.05.2013, 16:41  [ТС] #3
Это не совсем то, нет рекурсии, и находится произведение не четных элементов, а элементов с четным индексом
0
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
26.05.2013, 17:50 #4
Цитата Сообщение от Miwa123 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 int main()
{
 setlocale(LC_ALL,"RUSSIAN");
 int n,result=1;
 cout<<"Количество элементов в массиве: ";
 cin>>n;
 int *p=new int[n];
 cout<<"Введите элементы массива: ";
 for(int i=0;i<n;i++)
 {
    cin>>p[i];
 }
 for(int i=1;i<n;i=i+2)//вот тебе начинаем со 2ого элемента и с каждой итерацией индекс +2.
 {
    result*=p[i];
 }
 cout<<"Результат: "<<result<<endl;
 system("pause");
 return 0;
 }
если я правильно понял то посчитать произведение четных элементов массива.
я ума не приложу зачем сюда рекурсию. можно запихнуть... но код более громоздкий и менее быстрый станет
0
zss
Модератор
Эксперт С++
6380 / 5945 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
26.05.2013, 18:11 #5
C++
1
2
3
4
5
6
7
8
9
10
int proizv(int *a,int n)
{
    if(n==0)
    {
        if(a[0]%2==0)return a[0];
        else return 1;
    }
    if(a[n]%2==0)
        return a[n]*proizv(a,n-1);
}
Добавлено через 15 минут
чуть-чуть недописал.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int proizv(int *a,int n)
{
    if(n==0)
    {
        if(a[0]%2==0)return a[0];
        else return 1;
    }
    if(a[n]%2==0)
        return a[n]*proizv(a,n-1);
    else
       return proizv(a,n-1);
 
}
1
_Mutex
Заблокирован
26.05.2013, 19:03 #6
Цитата Сообщение от EdDo Посмотреть сообщение
Это не совсем то, нет рекурсии, и находится произведение не четных элементов, а элементов с четным индексом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int func(const int*& init,const int& size)throw(){ 
    int result=1;
    if(size-1!=0)result=func(init,size-1);
    if(size-1!=0&&(size-1)%2==0)result*=init[size-1]; 
    return result;
};
 
int main(){
   const int * arr=new int[7]{1,2,5,4,6,7,8};
   int result= func(arr,7);
   cout<<result; 
   return 0;
};
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2013, 19:03
Привет! Вот еще темы с ответами:

рекурсивная функция - C++
Требуется разработать рекурсивную функцию, возвращающую значение для вычисления n-го члена последовательности b1=5, bn+1=bn/n2+n+1 ...

Рекурсивная функция - C++
Расскажите пожалуйста про рекурсивную функцию, как она задаётся и всё что с ней связанно. (можно с примерами) от меня +Спасибо

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

Рекурсивная функция - C++
Задача


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

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

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