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

Найти самый короткий путь от точки до точки в матрице - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сформировать одномерный массив на основе двух других массивов http://www.cyberforum.ru/cpp-beginners/thread667481.html
Даны два массива: А, состоящий из N элементов и В, состоящий из N элементов. Сформировать массив C по следующему правилу Результат распечатать в виде: Число элементов: Исходный массив А: ...
C++ COORD position = {0,0}; - как это работает? Здравствуйте. Разбираю код двух программ: "Сапер" и "Змейка" и в каждой из них есть, вроде бы, функция COORD. То, что COORD position = {0,0}; отвечает за местоположение некоторой точки с... http://www.cyberforum.ru/cpp-beginners/thread667479.html
C++ fstream
Всем доброго дня! Как с помощью библиотеки fstream вывести содержимое файла на экран??
C++ Перевод программы с Pascal на С++
1. procedure TForm1.Button1Click(Sender: TObject); var i,k,n:integer; x,y,S:array of real; D:real; begin n:=StrToInt(edit1.Text); D:=StrToInt(edit2.Text); i:=0; for K:=1 to n do
C++ Обработка массива http://www.cyberforum.ru/cpp-beginners/thread667464.html
Помогите напи сать программу по заданному исходнику под Visual C++ Задание: Заданы два массива X=(x1,x2,...,xn) и Y = (y1,y2,...,ym), в состав которых входят натуральные числа, причем в...
C++ Программа для операций с комплексными числами На базе приведенного ниже класса и примера его использования надо реализовать программу работы с комплексными числами, что бы выполнялись следующие требования: 1. Программа должна позволять... подробнее

Показать сообщение отдельно
Кот Ангенс
318 / 268 / 38
Регистрация: 24.05.2012
Сообщений: 629
10.10.2012, 14:01
Кстати, можно заменить хвостовую рекурсию циклом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void SetDist(fsize_t x, fsize_t y, dist_t d) {
    while (d < F(x, y).dist) {
        F(x, y).dist = d;
        if (x && F(x - 1, y).pathable)
            SetDist(x - 1, y, d + 1);
        if (x < w - 1 && F(x + 1, y).pathable)
            SetDist(x + 1, y, d + 1);
        if (y && F(x, y - 1).pathable)
            SetDist(x, y - 1, d + 1);
        if (!(y < h - 1 && F(x, y + 1).pathable))
            return;
        y++;
        d++;
    }
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru