static void Main(string[] args)
{
string myst = "ABCDEF";
List<string> myresult = new List<string>();
for (int i = 1; i < myst.Length; i++)
{
myresult.AddRange(fun(i, myst).ToArray());
}
foreach (var a in myresult)
{
Console.WriteLine(a);
} Console.ReadLine();
}
public static List<string> fun(int n,string myst)
{
if (n > 1)
{
List<string> myreturn = new List<string>();
foreach (var a in fun(n - 1,myst))
{
for (int i = a.LastIndexOf(',') + 1; i <a.Length-1; i++)
{
string retu = a.Insert(i+1 , ",");
myreturn.Add(retu);
}
}
return myreturn;
}
if (n == 1)
{ List<string> myresult = new List<string>();
for (int i = 1; i < myst.Length-1; i++)
{
string result = myst.Insert(i, ",");
myresult.Add(result);
}
return myresult;
}
else
return null;
}
{
string myst = "ABCDEF";
List<string> myresult = new List<string>();
for (int i = 1; i < myst.Length; i++)
{
myresult.AddRange(fun(i, myst).ToArray());
}
foreach (var a in myresult)
{
Console.WriteLine(a);
} Console.ReadLine();
}
public static List<string> fun(int n,string myst)
{
if (n > 1)
{
List<string> myreturn = new List<string>();
foreach (var a in fun(n - 1,myst))
{
for (int i = a.LastIndexOf(',') + 1; i <a.Length-1; i++)
{
string retu = a.Insert(i+1 , ",");
myreturn.Add(retu);
}
}
return myreturn;
}
if (n == 1)
{ List<string> myresult = new List<string>();
for (int i = 1; i < myst.Length-1; i++)
{
string result = myst.Insert(i, ",");
myresult.Add(result);
}
return myresult;
}
else
return null;
}
解决方案 »
- 在做一个项目很多页面都要用到同样的方法,现在想把这个方法写在一个公共类里面做公共方法,请问应该用静态类静态方法还是用非静态类静态方法?
- 怎么解决出库日期小于入库日期的问题?
- 用*号显示密码输入
- C# WINFORM制作安装程序数据库的问题。
- C#中怎么使图片矩阵显示??
- 如何由四个不同的datatable构成一个dataset
- MDI子窗体最大化时,子窗体只在主窗体的可视区域显示,不合并菜单,如何处理?
- Microsoft Office Spreadsheet 11.0控件拖入页面后连接数据库出了问题,希望高手给点意见
- C#。net在母版中用link的shortcut icon和Bookmark做IE地址栏图标和收藏栏图标没有用是什么原因啊?
- 用子线程调用excel,用尽网上所有释放excel方法...依然无解!!!
- 用xenocode混淆后出现的问题,请教具体混淆方法。
- 子窗体调用父窗体方法
例如 :myreturn.AddRang(fun(n-1,myst).toarray());返回这个的时候就编译通过不了??
想请问各位,递归算法 有哪些限制啊?
myreturn 在调用AddRang后已经改变
不好意思 ,,写错了地方,,是 return 的时候 编译就不能通过了 :报错结果是 void 类型和 string类型 不能相互转换
AB,CDEF
ABC,DEF
ABCD,EF
A,B,CDEF
A,BC,DEF
A,BCD,EF
A,BCDE,F
AB,C,DEF
AB,CD,EF
AB,CDE,F
ABC,D,EF
ABC,DE,F
ABCD,E,F
A,B,C,DEF
A,B,CD,EF
A,B,CDE,F
A,BC,D,EF
A,BC,DE,F
A,BCD,E,F
不好意思 ,,写错了地方,,是 return 的时候 编译就不能通过了 :报错结果是 void 类型和 string类型 不能相互转换?
另外 在写递归算法的时候 需要注意的要点是什么?
return myreturn;