int n = 5
sting[] s = new s[Math.Pow(2,n)] //2的n次方个
for(int i = 0; i <= s.Length; i++)
{
s[i] = Convert.ToString(i,2);//十进制转二进制字符串
for(int j = n - s[i].Length; j >= 0; j--)//将二进制前面补0 例如1010变为01010
{
s[i].Insert(0,"0");
}
s[i] = s[i].Replace("0","a").Replace("1","b");
}
手打代码,可能有语法错误,理论值是对的
测试了下 不对
@普软网络: 理论也不对?你好好研究下
@刘宏玺: 感觉要用到二叉树
@普软网络: 我这代码已经可以实现了。。。
@刘宏玺: 你的代码 我执行后的结果
@普软网络: 等我写给你
@普软网络:
static void Main(string[] args) { int n = 5; string[] s = new string[(int)Math.Pow(2, (double)n)]; //2的n次方个 for (int i = 0; i < s.Length; i++) { s[i] = Convert.ToString(i, 2);//十进制转二进制字符串 for (int j = n - s[i].Length - 1; j >= 0; j--)//将二进制前面补0 例如1010变为01010 { s[i] = s[i].Insert(0, "0"); } s[i] = s[i].Replace("0", "a").Replace("1", "b"); Console.WriteLine(s[i]); } Console.ReadKey(); }
这回你试试
@刘宏玺: 谢谢 ,这下对了 ,但是这种思路 很特别 , 牛!!!