我现在需要这样的一个循环关键字符: 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如果自定义关键字符,长度,循环字符然后组合 这个程序代码应该怎么写好呢?
长度: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如果自定义关键字符,长度,循环字符然后组合 这个程序代码应该怎么写好呢?
解决方案 »
- textbox取消回车执行button
- 求帮忙编个 指南针 4天了哭死
- 求助:vs2008无法连接到sql2005
- 几道面试题,该怎么做?请帮忙解答一下,急,拜托了!!!
- 关于.NET Framewok 4泛型接口协变抗变的问题
- #######如何将一个.cpp文件做成一个可供.net调用的com组件?#######
- 谁会用C#写把视频截取图片的程序,最好能有个Demo(只有70分了,全部奉上)
- 请问在水晶报表里面,怎样根据图片的路径和文件名,动态加载打印出来?100分相送!不够再加!
- 排序问题 ,在线等 思归等大侠进....
- HttpWebRequest 无法访问某个网站
- About Modal Editor!
- [求助]c#中连接ACESS数据,老出现错误!
for(int i=1;i<你自己定义的;i++)
{
for(int j=1;j<=4;j++)
{
j.toString()+字符串;
}
}后面的一样 规律就这样..
没测试.就在这写的.网吧没开发工具..
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
*/
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位置, 自定义字符);
}
}
}
/// 这样的一个循环
/// </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);
}
/// 这样的一个循环
/// </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);
}
13M3
133M
M233
2M33
23M3
233M
M333
3M33
33M3
333M 牛头不对马嘴。。
全乱了
{
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 没有使用,。 看来得用递归了。。
关键字符: M
长度:4
参与循环的字符:1234 返回
m111
m112
m113
m114
m121
...你要不要?不要我就不写了
{
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)); }问题解决了。。谢谢大家!!!