我现在需要这样的一个循环关键字符: M
长度:3
参与循环的字符:1234输出结果应该是:
M11
M12
M13
M14M21
M22
M23
M24M31
M32
M33
M34M41
M42
M43
M441M1
1M2
1M3
1M42M1
2M2
2M3
2M43M1
3M2
3M3
3M4
4M1
4M2
4M3
4M411M
12M
13M
14M21M
22M
23M
24M31M
32M
33M
34M41M
42M
43M
44M如果自定义关键字符,长度,循环字符然后组合 这个程序代码应该怎么写好呢?

解决方案 »

  1.   

    前面半段
    for(int i=1;i<你自己定义的;i++)
    {
          for(int j=1;j<=4;j++)
          {
             j.toString()+字符串;
          }
    }后面的一样  规律就这样..
      没测试.就在这写的.网吧没开发工具..
      

  2.   


    string s = "";
    for (int m位置 = 0; m位置 < 3; m位置++)
    {
        for (int i = 1; i < 4; i++)
        {
            for (int j = 1; j < 4; j++)
            {
                string l = i.ToString() + j.ToString() + "\r\n";
                s += l.Insert(m位置, "M");
            }
        }
    }
    /* 结果
    M11
    M12
    M13
    M21
    M22
    M23
    M31
    M32
    M33
    1M1
    1M2
    1M3
    2M1
    2M2
    2M3
    3M1
    3M2
    3M3
    11M
    12M
    13M
    21M
    22M
    23M
    31M
    32M
    33M
    */
      

  3.   

    里面的i<4 j<4 改成i<=4 j<=4 满足你的要求
      

  4.   

    string 结果 = "";
    string 自定义字符 = "M";
    for (int m位置 = 0; m位置 < 3; m位置++)
    {
        for (int i = 1; i <= 4; i++)
        {
            for (int j = 1; j <= 4; j++)
            {
                string 临时 = i.ToString() + j.ToString() + "\r\n";
                结果 += 临时.Insert(m位置, 自定义字符);
            }
        }
    }
      

  5.   

    /// <summary>
    /// 这样的一个循环
    /// </summary>
    /// <param name="numbers">参与循环的字符</param>
    /// <param name="key">关键字符</param>
    /// <param name="length">长度</param>
    private void Calc(string numbers, string key, int length)
    {
        if (string.IsNullOrEmpty(numbers)) return;
        if (string.IsNullOrEmpty(key)) return;
        if (length > numbers.Length) return;
        int[] index = new int[length - 1];
        bool @break = false;
        do
        {
            char[] temp = new char[length - 1];
            for (int i = 0; i < index.Length; i++)
                temp[i] = numbers[index[i]];
            for (int i = 0; i < length; i++)
                Console.WriteLine(new string(temp).Insert(i, key));
            @break = true;
            for (int j = 0; j < index.Length; j++)
                if (index[j] + 1 < numbers.Length)
                {
                    index[j]++;
                    for (int i = 0; i < j; i++) index[i] = 0;
                    @break = false;
                    break;
                }
        }
        while (!@break);
    }private void Form1_Load(object sender, EventArgs e)
    {
        Calc("12345", "M", 3);
    }
      

  6.   

    /// <summary>
    /// 这样的一个循环
    /// </summary>
    /// <param name="numbers">参与循环的字符</param>
    /// <param name="key">关键字符</param>
    /// <param name="length">长度</param>
    private void Calc(string numbers, string key, int length)
    {
        if (string.IsNullOrEmpty(numbers)) return;
        if (string.IsNullOrEmpty(key)) return;
        if (length - 1 > numbers.Length) return;
        int[] index = new int[length - 1];
        bool @break = false;
        do
        {
            char[] temp = new char[length - 1];
            for (int i = 0; i < index.Length; i++)
                temp[i] = numbers[index[i]];
            for (int i = 0; i < length; i++)
                Console.WriteLine(new string(temp).Insert(i, key));
            @break = true;
            for (int j = 0; j < index.Length; j++)
                if (index[j] + 1 < numbers.Length)
                {
                    index[j]++;
                    for (int i = 0; i < j; i++) index[i] = 0;
                    @break = false;
                    break;
                }
        }
        while (!@break);
    }private void Form1_Load(object sender, EventArgs e)
    {
        Calc("123", "M", 4);
    }
      

  7.   

    清洁工!你这什么呀?
    13M3 
    133M 
    M233 
    2M33 
    23M3 
    233M 
    M333 
    3M33 
    33M3 
    333M 牛头不对马嘴。。
    全乱了
      

  8.   

    private void Form1_Load(object sender, EventArgs e)
    {
        string s = Calc1("1234", "M");
    }
    private string Calc1(string numbers, string key)
    {    string 结果 = "";
        string 自定义字符 = "M";
        for (int m位置 = 0; m位置 < 3; m位置++)
        {
            for (int i = 0; i < numbers.Length; i++)
            {
                for (int j = 0; j < numbers.Length; j++)
                {
                    string 临时 = numbers[i].ToString() + numbers[j].ToString() + "\r\n";
                    结果 += 临时.Insert(m位置, 自定义字符);
                }
            }
        }
        return 结果;
    }/*
    M11
    M12
    M13
    M14
    M21
    M22
    M23
    M24
    M31
    M32
    M33
    M34
    M41
    M42
    M43
    M44
    1M1
    1M2
    1M3
    1M4
    2M1
    2M2
    2M3
    2M4
    3M1
    3M2
    3M3
    3M4
    4M1
    4M2
    4M3
    4M4
    11M
    12M
    13M
    14M
    21M
    22M
    23M
    24M
    31M
    32M
    33M
    34M
    41M
    42M
    43M
    44M
    */
    长度:3  没有使用,。 看来得用递归了。。
      

  9.   

    LZ:
    关键字符: M 
    长度:4 
    参与循环的字符:1234 返回
    m111
    m112
    m113
    m114
    m121
    ...你要不要?不要我就不写了
      

  10.   

    private string Calc(string numbers, string key, int length)
            {
                string tmp=null;
                if (string.IsNullOrEmpty(numbers)) return null;
                if (string.IsNullOrEmpty(key)) return null;
                if (length > numbers.Length) return null;
                int[] index = new int[length - 1];
                bool @break = false;
                do
                {
                    char[] temp = new char[length - 1];
                    for (int i = 0; i < index.Length; i++)
                        temp[i] = numbers[index[i]];
                    for (int i = 0; i < length; i++)
                        tmp+=new string(temp).Insert(i, key) + "\r\n";
                    @break = true;
                    for (int j = 0; j < index.Length; j++)
                        if (index[j] + 1 < numbers.Length)
                        {
                            index[j]++;
                            for (int i = 0; i < j; i++) index[i] = 0;
                            @break = false;
                            break;
                        }
                }
                while (!@break);
                return tmp;
            }                
            private void btnBuild_Click(object sender, EventArgs e)
            {            txtBuild.Text = Calc(txtWord.Text, txtLetter.Text, int.Parse(txtLength.Text));        }问题解决了。。谢谢大家!!!