54 / 54 / 2
Регистрация: 20.01.2013
Сообщений: 832
Записей в блоге: 1
1

Ошибка в рекурсии

06.12.2013, 14:35. Показов 349. Ответов 2
Метки нет (Все метки)

почему то переменная 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" );
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2013, 14:35
Ответы с готовыми решениями:

Ошибка в Рекурсии с++
Здравствуйте,у меня в данном коде выбивает ошибку в строке 23 .В рекурсии я не силён и прошу...

Ошибка в рекурсии
Помогите пожалуйста исправить ошибку. Задание: Найти сумму наименьших элементов. import random...

Ошибка в рекурсии
Здравствуйте уважаемые читатели. Формула для рекурсивного вычисления: ...

Ошибка в реализации рекурсии
Здравствуйте, подскажите пожалуйста в чём ошибка. &quot;Неверное число параметров функции&quot; выдает в 4...

2
858 / 447 / 112
Регистрация: 06.07.2013
Сообщений: 1,494
06.12.2013, 14:38 2
может надо использовать указатель?
0
54 / 54 / 2
Регистрация: 20.01.2013
Сообщений: 832
Записей в блоге: 1
06.12.2013, 17:35  [ТС] 3
Цитата Сообщение от Raali Посмотреть сообщение
может надо использовать указатель?
уже разобрался, просто я у + 1 как х передавал (в параметрах ф-ии прописал х,у а писал везде у,х)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2013, 17:35
Помогаю со студенческими работами здесь

Рекурсии, ошибка выполнения
Здравствуйте, Подскажите пожалуйста в чем у меня ошибка, данный пример почему-то не работает,...

Логическая ошибка при рекурсии
Решил задачу в теме про рекурсию. Использован алгоритм Евклида. Условие: Напишите рекурсивную...

Ошибка сегментирования при использовании рекурсии
Суть проблемы в следующем: При функции со значением а(100) все работает отлично. Но как заставить...

Ошибка в рекурсии Illegal use of floating point
#include &lt;stdio.h&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; float...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru