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

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

Войти
Регистрация
Восстановить пароль
 
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
#1

Корректировка в рекурсии - C++

22.05.2011, 18:58. Просмотров 289. Ответов 1
Метки нет (Все метки)

Возникла проблема в несложной задаче. Решать задачу конечно же не требуется, просто отккоректировать в плане рекурсии.
Вот условие: http://********/index.asp?main=task&id_task=165

А вот мой код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <cstdlib>
#include <iostream>
 
using namespace std;
int s(int a,int b);
int n,m,t[99][99],i,j;
int main()
{   cin>>n>>m;
    for(i=1;i<=n;i++)
     for(j=1;j<=m;j++)
      cin>>t[i][j];
    cout<<s(1,1);
    system("PAUSE");
 
}
int s(int a,int b)
{if((a==n)&&(b==m))return 1;}else
 if((a+t[a][b]<=n)&&(b+t[a][b]<=m))return s(a+t[a][b],b)+s(a,b+t[a][b]);else
 if(a+t[a][b]<=n)return s(a+t[a][b],b);else
 if(b+t[a][b]<=n)return s(a,b+t[a][b]);else
 return 0;
}
Здесь я считываю числа m,n; и массив t, потом идет рекурсивная функция по координатам а и b.
Но почему-то не учитываются некоторые ходы.
Подскажите, пожалуйста, что я не так обьявил?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2011, 18:58     Корректировка в рекурсии
Посмотрите здесь:

Корректировка весов - C++
Здраствуйте... Мне тут в универе на самостаятельную обработку дали: &quot;Корректировка весов нейронной сети с заданной структурой с...

Корректировка строки - C++
Всем доброго времени суток. Начал решать задания по С++ с сайта одного, для практики. Задание такое: Вводим строку -&gt; получаем другую...

Корректировка строки - C++
Всем доброго времени суток. Начал решать задания по С++ с сайта одного, для практики. Задание такое: Вводим строку -&gt; получаем другую...

Корректировка записей - C++
Должна выполнятся корректировка записей указанного автора, но почему-то происходит полная перезапись содержимого файла, на введённые...

Требуется корректировка) - C++
Всем привет. Помогите с лабой, у меня есть похожий вариант, надо его переделать под соответствующее заданее. Для заданных...

Создание и корректировка файла - C++
Разработать программу создания и коррекции файла, где хранится информация обо всех водоемах области.В файле должна хранится следующая...

Функции пользователя.Корректировка - C++
На днях сдавать отчёты,а я уже который день бьюсь над этими задачами...Препод лично МНЕ ничего не хочет объяснять.Говорит,типа ты у нас...

Корректировка текстовых строк - C++
Напишите программу, считывающую предложение длиной до 100 символов и выводящую его же с откорректированными расстояниями между словами и...

Корректировка блок-схемы - C++
Что неправильно в этой блок-схеме? Код программы: x=a; y=x; if(x&gt;0){ if (x%2==0) y*=2; else y-=4; y=10;}

Функции, повторы,корректировка кода - C++
как убрать при вводе &quot;нет&quot;, вывод строки введите стороны квадрата.. #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;string&quot; void...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
22.05.2011, 19:18     Корректировка в рекурсии #2
См. коментарии:
C++
1
2
3
4
5
6
7
int s(int a,int b)
{if((a==n)&&(b==m))return 1;}else// вот здесь лишняя }
 if((a+t[a][b]<=n)&&(b+t[a][b]<=m))return s(a+t[a][b],b)+s(a,b+t[a][b]);else
 if(a+t[a][b]<=n)return s(a+t[a][b],b);else
 if(b+t[a][b]<=n)return s(a,b+t[a][b]);else// нужно в этой строке if(b+t[a][b]<=m)
 return 0;
}
Yandex
Объявления
22.05.2011, 19:18     Корректировка в рекурсии
Ответ Создать тему
Опции темы

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