private StringBuilder s = new StringBuilder();
List<int> source = ReadParam();
foreach (var i in source)
{
foreach (var j in source)
{
foreach (var k in source)
{
s.AppendFormat("{0}", ((char)i).ToString());
s.AppendFormat("{0}", ((char)j).ToString());
s.AppendFormat("{0}", ((char)k).ToString());
s.Append("\r\n");
}
}
}谁帮我把这三层循环变成递归?
直接这样就可以了,, private StringBuilder s = new StringBuilder();
List<int> source = ReadParam();
foreach (var i in source)
{
s.AppendFormat("{0}", ((char)i).ToString());
s.Append("\r\n");
}
比如source内容是{1,2,3},我要取的是"111"、"112","113","121","122",.......
Fun(0,0);public void Fun( int i,int j)
{
for (int k = 0; k < source.Count; k++)
{
s.AppendFormat("{0}", ((char)i).ToString());
s.AppendFormat("{0}", ((char)j).ToString());
s.AppendFormat("{0}", ((char)k).ToString());
s.Append("\r\n");
}
j++; if (j < source.Count)
{
Fun(i, j);
}
else
{
i++;
if (i < source.Count)
{
j = 0;
Fun(i, j);
}
}
}
public void Fun( int i,int j)
{
for (int k = 0; k < source.Count; k++)
{
s.AppendFormat("{0}", ((char)i).ToString());
s.AppendFormat("{0}", ((char)j).ToString());
s.AppendFormat("{0}", ((char)k).ToString());
s.Append("\r\n");
}
j++; if (j < source.Count)
{
Fun(i, j);
}
else
{
i++;
if (i < source.Count)
{
j = 0;
Fun(i, j);
}
}
}