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

рекурсивные функции - C++

Восстановить пароль Регистрация
 
Korch
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 17
04.03.2013, 21:48     рекурсивные функции #1
1. Найти НОД (наибольший общий делитель) двух натуральных чисел.
2. В одномерном массиве, состоящем из n целых элементов, вычислить номер максимального элемента массива. Преобразовать массив таким образом, чтобы в первой его половине рас-полагались элементы, стоявшие в нечётных позициях, а во второй половине – элементы, стоявшие в чётных позициях.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2013, 21:48     рекурсивные функции
Посмотрите здесь:

рекурсивные функции C++
C++ рекурсивные функции
C++ Рекурсивные функции
Рекурсивные функции C++
C++ Рекурсивные и не рекурсивные функции (вычисление суммы всех натуральных чисел от 1 до n)
C++ Рекурсивные функции
Рекурсивные функции C++
Рекурсивные функции C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ya_noob
_
200 / 144 / 9
Регистрация: 08.10.2011
Сообщений: 432
05.03.2013, 07:37     рекурсивные функции #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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <algorithm>
using namespace std;
 
int gcd( int n, int m )
{
    if ( !m ) return n;
    return gcd( m, n % m );
}
 
int maxIndex( int *a, int n, int i = 0 )
{
    if ( i == n - 1 ) return i;
    int k = maxIndex( a, n, i + 1 );
    return a[ k ] > a[ i ] ? k : i;
}
 
void oddFirst( int *a, int n, int i = 0, int d = 0 )
{
    if ( i + d >= n ) return;
    swap( a[ i ], a[ i + d ] );
    oddFirst( a, n, i + 1, d + 1 );
}
 
void print( int *a, int n )
{
    for ( int i = 0; i < n; ++i )
        cout << a[ i ] << " ";
    cout << endl;
}
 
int main()
{
    const int N = 10;
    int a[ N ] = { 5, 4, 9, 10, 7, 6, 1, 8, 3, 2 };
    int n, m;
 
    cout << "gcd test: enter two numbers: ";
    cin >> m >> n;
    cout << "gcd(" << m << ", " << n << ") = " << gcd( m, n ) << endl;
 
    cout << "\nmaxIndex test for array: ";
    print( a, N );
    cout << "maxIndex = " << maxIndex( a, N ) << endl;
 
    cout << "\noddFirst test for previous array" << endl;
    oddFirst( a, N );
    cout << "result: ";
    print( a, N );
 
    return 0;
}
Yandex
Объявления
05.03.2013, 07:37     рекурсивные функции
Ответ Создать тему
Опции темы

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