可能的重复:
如何获得子集所有可能的组合? https://stackoverflow.com/questions/13765699/how-can-i-obtain-all-the-possible-combination-of-a-subset
例如,我正在尝试输入给定字符串的集合
“123”将给出 {1}{2}{3}{13}{23}{12}{123}{}
但我的代码给了我 1 1
请任何人告诉我原因并请帮我解决它
谢谢大家
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TestAAD
{
class Program
{
static List<string> sets = new List<string>();
static int len = 0;
private static void Generte_Sets(string str, int i)
{
sets.Add(str[i].ToString());
if (i < len)
Generte_Sets(str, i + 1);
else
{
for (int j = 0; j < sets.Count; j++)
Console.Write(sets[j]);
Console.WriteLine();
}
sets.Remove(str[i].ToString());
if (i < len)
Generte_Sets(str, i + 1);
else
{
for (int j = 0; j < sets.Count; j++)
Console.Write(sets[j]);
Console.WriteLine();
}
}
static void Main(string[] args)
{
string set = "123";
Generte_Sets(set, 0);
len = set.Length;
for (int i = 0; i < sets.Count; i++)
{
Console.WriteLine(sets[i]);
}
}
}
}
请帮助我输入这些集合
我需要快速帮助
谢谢大家
class Program
{
static List<string> sets = new List<string>();
static int len = 0;
private static void Generte_Sets(string str, int i)
{
sets.Add(str[i].ToString());
**if (i + 1 < len)**
Generte_Sets(str, i + 1);
else
{
for (int j = 0; j < sets.Count; j++)
Console.Write(sets[j]);
Console.WriteLine();
}
sets.Remove(str[i].ToString());
**if (i + 1 < len)**
Generte_Sets(str, i + 1);
else
{
for (int j = 0; j < sets.Count; j++)
Console.Write(sets[j]);
Console.WriteLine();
}
}
static void Main(string[] args)
{
string set = "123";
**len = set.Length;**
Generte_Sets(set, 0);
for (int i = 0; i < sets.Count; i++)
{
Console.WriteLine(sets[i]);
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)