Рекурсия с шагом N+1 и N+3

162
23 февраля 2019, 19:10

Требуется с помощью рекурсии определить можно ли из массива 1..N, в котором лежать целые неотрицательные числа, получить сумму K, если можно суммировать числа только с индексом i+1 или i+3(начинать с 1 элемента массива). Я смог написать метод для любых перемещений по массиву:

public bool CangetSumOfK(int[] data, int k, int index = 0)
{
    if (k == 0) return true;
    if (k < 0) return false;
    if (index >= data.Length) return false;
    return CangetSumOfK(data, k, index+1) 
    || CangetSumOfK(data, k - data[index], index+1); 
}

Как мне его изменить чтобы он работал в моем случае?

Answer 1
return 
       CangetSumOfK(data, k, index + 1), 
    || CangetSumOfK(data, k - data[index], index + 1) 
    || CangetSumOfK(data, k, index + 3)
    || CangetSumOfK(data, k - data[index], index + 3); 
READ ALSO
Чтение данных из COM порта C# .Net

Чтение данных из COM порта C# .Net

Написал программу на микроконтроллере которая в порт посылает данные(4 константных значения типа int) через функцию sprintf, sprintf переводит интовое...

147
Как перевести текст HTML-страницы?

Как перевести текст HTML-страницы?

Приложение выполняет парсинг HTML страницыHTML страница имеет текст, картинки, таблицы и другое содержание

163
symfony 3 вывод в форму ChoiceType (select) из базы данных

symfony 3 вывод в форму ChoiceType (select) из базы данных

Помогите, пожалуйстаДелаю скрипт, в котором можно добавлять пользователя, каждый пользователь имеет свою должность (таблица в базе positions)

170
Вывод вложенных списков из БД с помощью PHP

Вывод вложенных списков из БД с помощью PHP

Подскажите, пожалуйста, как можно решить следующую задачуЕсть таблица Категории товаров

174