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

Ошибка в рекурсии - C++

Восстановить пароль Регистрация
 
HardLogin
 Аватар для HardLogin
52 / 52 / 1
Регистрация: 20.01.2013
Сообщений: 640
Записей в блоге: 1
06.12.2013, 14:35     Ошибка в рекурсии #1
почему то переменная y не меняется во время рекурсии. что за?

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
53
#include <iostream>
using namespace std;
 
int n, m, a[ 500 ][ 500 ];
 
int f( int x, int y, int s )
{ /*cout << y << " " << x << " : "  << s << endl;
system( "pause" );*/
    if( y >= n - 1 )
    {
        if( s % 100 == 47 || s % 100 == 74 || s % 100 == 44 || s % 100 == 77 )
        return s;
        else return -1;
    }
 
    int d, b, c;
    d = b = c = -1;
    
    if( x > 0 )
    d = f( y + 1, x - 1, s + a[ y + 1 ][ x - 1 ] );
    
    b = f( y + 1, x, s + a[ y + 1 ][ x ] );
    
    if( x < m - 1 )
    d = f( y + 1, x + 1, s + a[ y + 1 ][ x + 1 ] );
    
    
    if( b <= d && c <= d )return d;
    if( d <= b && c <= b )return b;
    if( b <= c && d <= c )return c;
}
 
int main()
{
    cin >> n >> m;
    
    for( int i = 0; i < n; i++ )
    for( int j = 0; j < m; j++ )
    cin >> a[ i ][ j ];
    
    int s, bests = -1;
    
    for( int i = 0; i < m; i++ )
    {
         s = f( i, 0, a[ 0 ][ i ] );
         
         if( bests < s )bests = s;
    }
    
    cout << bests << endl;
    
    return system( "pause" );
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2013, 14:35     Ошибка в рекурсии
Посмотрите здесь:

C++ Рекурсия от рекурсии
задание по рекурсии C++
C++ из рекурсии - цикл
рекурсии... C++
C++ Рекурсии.
Корректировка в рекурсии C++
C++ сложности по рекурсии в С++
C++ Использование рекурсии

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
06.12.2013, 14:38     Ошибка в рекурсии #2
может надо использовать указатель?
HardLogin
 Аватар для HardLogin
52 / 52 / 1
Регистрация: 20.01.2013
Сообщений: 640
Записей в блоге: 1
06.12.2013, 17:35  [ТС]     Ошибка в рекурсии #3
Цитата Сообщение от Raali Посмотреть сообщение
может надо использовать указатель?
уже разобрался, просто я у + 1 как х передавал (в параметрах ф-ии прописал х,у а писал везде у,х)
Yandex
Объявления
06.12.2013, 17:35     Ошибка в рекурсии
Ответ Создать тему
Опции темы

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