.NET 4.x Динамическое программирование: задача о черепашке - C#

Узнай цену своей работы

Формулировка задачи:

Задача о черепашке. Дан 2х мерный массив с очками (длиной пути ну и.т.д.). Найти кротчайший путь из точки

А

в точку

Б

. Пример верной работы:
{ 1, 3, 4, 8 }, { 5, 6, 2, 0 }, { 1, 3, 4, 2 }, { 0, 1, 8, 6 }, { 7, 4, 5, 1 }

1 4 8

8 5 6

10 10

1 3 4

12

0 1 8

18

7 4 5

19

Но при таком
{ 1, 3, 4, 8 }, { 5, 6, 2, 0 }, { 1, 3, 4, 2 }, { 0, 1, 8, 60 }, { 7, 4, 5, 1 }
она работает не верно вместо:

1 4 8

8 5 6

10 10

1 3

16

12

0 1

24

60 7 4

29

30

Она

1 4 8

8 5 6

10 10

1 3 16

12

0 1 24

72

7 4 5

73

Листинг программы
  1. class Program
  2. {
  3. static public void print(int[,] a)
  4. {
  5. for (int i = 0; i < a.GetLength(0); i++, Console.WriteLine())
  6. for (int j = 0; j < a.GetLength(1); j++)
  7. Console.Write(a[i, j] + " ");
  8. }
  9. static void herepahka(int[,] a, int i, int j)
  10. {
  11. Console.WriteLine();
  12. if (i + 1 < a.GetLength(0) && j + 1 < a.GetLength(1))
  13. {
  14. if (a[i, j] + a[i + 1, j] <= a[i, j] + a[i, j + 1])
  15. {
  16. a[i + 1, j] += a[i, j];
  17. print(a);
  18. herepahka(a, i + 1, j);
  19. }
  20. else
  21. {
  22. a[i, j + 1] += a[i, j];
  23. print(a);
  24. herepahka(a, i, j + 1);
  25. }
  26. }
  27. else
  28. {
  29. if (i + 1 < a.GetLength(0))
  30. {
  31. a[i + 1, j] += a[i, j];
  32. print(a);
  33. herepahka(a, i + 1, j);
  34. }
  35. if (j + 1 < a.GetLength(1))
  36. {
  37. a[i, j + 1] += a[i, j];
  38. print(a);
  39. herepahka(a, i, j + 1);
  40. }
  41. print(a);
  42. }
  43. }
  44. static void Main(string[] args)
  45. {
  46. Console.WriteLine("Vvedite razmer polia");
  47. int[,] a = {
  48. { 1, 3, 4, 8 },
  49. { 5, 6, 2, 0 },
  50. { 1, 3, 4, 2 },
  51. { 0, 1, 8, 60 },
  52. { 7, 4, 5, 1 } };
  53. print(a);
  54. Console.WriteLine();
  55. herepahka(a, 0, 0);
  56. Console.ReadKey();
  57. }
  58. }
ap...

Решение задачи: «.NET 4.x Динамическое программирование: задача о черепашке»

textual
Листинг программы
  1. int[,] a = {{ 0, 0, 0, 8 },
  2.             { 5, 6, 0, 5 },
  3.             { 0, 0, 0, 2 },
  4.             { 0, 1, 8, 1 },
  5.             { 0, 0, 0, 0 } };

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы