кодесурса
«C

Упражнения на C: вернуть минимальное количество прыжков, чтобы достичь конца массива

script1adsense2code
script1adsense3code

C Массив: упражнение 56 с решением

Напишите программу на C, чтобы она возвращала минимальное количество переходов до конца массива.

Пример решения:

Код C:

#include <stdio.h>
#include <limits.h>
 
int noOfJumps (int arr1[], int low, int high)
{
   if (high == low)
     return 0;
   if (arr1[low] == 0)
     return INT_MAX;
   int min = INT_MAX;
   for (int i = low+1; i <= high && i <= low + arr1[low]; i++)
   {
       int jumps = noOfJumps(arr1, i, high);
       if(jumps != INT_MAX && jumps + 1 < min)
           min = jumps + 1;
   }
   return min;
}
 
int main()
{
  int arr1[] = {1, 3, 5, 8, 9, 2, 6, 7, 6, 8, 9,1,1,1};
  
  int n = sizeof(arr1)/sizeof(arr1[0]);
  int i;
 //------------- print original array ------------------	
	printf("The given array is :  ");
	for(i = 0; i < n; i++)
	{
	printf("%d  ", arr1[i]);
    } 
	printf("\n");
//------------------------------------------------------   
  printf("The minimum of number of jumps is required to reach the end is:  %d ", noOfJumps(arr1, 0, n-1));
  return 0;
}

Пример вывода:

 Данный массив: 1 3 5 8 9 2 6 7 6 8 9 1 1 1  
Минимальное количество прыжков, необходимое для достижения конца: 3 

Блок - схема:

«Блок-схема:

Редактор кода программирования C:

Улучшите этот пример решения и опубликуйте свой код через Disqus.

Previous: написать программу на C, чтобы проверить, является ли массив подмножеством другого массива.
Далее: написать программу на C, чтобы найти минимальный элемент в отсортированном и повернутом массиве.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code