Получение комбинации чисел
Я хочу передать число в качестве входных данных и получить список строковых массивов(в определенном формате) в качестве выходных данных.
Например:
Если вход равен 4, то выход должен быть
[{ "0", "1", "2", "3", "4"}, { "0", "1", "2", "3&4"}, { "0", "1", "2&3&4"}, { "0", "1&2", 3", 4"}, { "0", "1", "2&3", "4"}, { "0", "1&2&3", "4"}, { "0", "1&2&3&4"}, { "0&1", "2&3", "4"}, { "0&1&2", "3&4"}, { "0&1", "2&3&4"}, { "0&1", "2", "3&4"}, { "0&1", "2&3&4"}, { "0&1&2&3&4"}]
Во всех комбинациях значения находятся в порядке(от 0 до входного значения) и присутствовали только один раз.
Может ли кто-нибудь помочь мне с какими-нибудь идеями?
заранее спасибо.
Что я уже пробовал:
public static List<string[]> GetAllCombinations() { List<int> num = new List<int>() { 0, 1, 2, 3, 4 }; List<string[]> strArr = new List<string[]>(); int k = 1; while (k <= num.Count) { List<string> st1 = new List<string>(); for (int i = 0; i < num.Count; i = i + k) { string value = ""; for (int j = i; (j < num.Count && j < (i + k)); j++) { if (value != "") value = value + "&"; value = value + num[j]; } st1.Add(value); } strArr.Add(st1.ToArray()); k++; } return strArr; }
Он дает большую часть комбинаций, но не средние комбинации.
MadMyche
Покажите, что вы на самом деле пробовали; и выберите один язык, прямо сейчас он выглядит как спам со всеми этими тегами
Member 11484114
Привет,
Я отредактировал вопрос и вставил код, который я пробовал. Но это дает только частичный выход. Кстати, я удалил несколько тегов. Спасибо за это.
Richard MacCutchan
Вы пометили это несколькими языками. Какой из них вы планируете использовать?
Member 11484114
Я планирую использовать его в C#. Даже его в C или python тоже хорошо. Я могу преобразовать его в C#.