有数字 1,2,3,4,5 五个数字,每次输出三位数字组合,每个数字均可重复使用,但输出的结果不能重复。
结果如: 142,155,123,514........
这个怎么写啊,谢谢
18 个解决方案
#1
把12345当做一个数组 for循环取数据
#2
List<string> list = new List<string>();
int i = 1;
while (i <= 5)
{
int j = i;
while (j <= 5)
{
int k = j;
while (k <= 5)
{
string value = i.ToString() + j.ToString() + k.ToString();
if (!list.Contains(value))
{
list.Add(value);
Console.WriteLine();
}
}
}
}
int i = 1;
while (i <= 5)
{
int j = i;
while (j <= 5)
{
int k = j;
while (k <= 5)
{
string value = i.ToString() + j.ToString() + k.ToString();
if (!list.Contains(value))
{
list.Add(value);
Console.WriteLine();
}
}
}
}
#3
Console.WriteLine();
==>
Console.WriteLine(value);
==>
Console.WriteLine(value);
#4
学习中~~~~~~~~~~~~~~~~~~
#5
ArrayList al = new ArrayList();
for(int i = 1; i < 6; i ++){
for(int j = 1; j < 6; j ++){
for(int k = 1; k < 6; k ++){
al.add(i.toString() + j.toString() + k.toString())
}
}
}
for(int i = 1; i < 6; i ++){
for(int j = 1; j < 6; j ++){
for(int k = 1; k < 6; k ++){
al.add(i.toString() + j.toString() + k.toString())
}
}
}
#6
for (int i = 1; i < 6; i++)
for (int j = 1; j < 6; j++)
for (int k = 1; k < 6; k++)
Console.WriteLine("{0}{1}{2}", i, j, k);
#7
真有用3 个FOR的 NB 人,3只是一个数字,它要想像成N的 好吧
#8
LS你太逗了吧
#9
别人要的是思路
#10
只是给你是简单的实现方法.
如果是N那你肯定要考虑提个方法出来.或者寻找更好的方法.
如果是N那你肯定要考虑提个方法出来.或者寻找更好的方法.
#11
支持这个
#12
杀鸡焉用牛刀?
#13
3层循环
.
.
#14
int[] a = { 1,2,3,4,5};
int[] b = { 1, 2, 3, 4, 5 };
int[] c = { 1, 2, 3, 4, 5 };
foreach (int i in a)
{
foreach (int j in b)
{
foreach (int k in c)
{
Console.WriteLine(i.ToString() + j.ToString() + k.ToString());
}
}
}
int[] b = { 1, 2, 3, 4, 5 };
int[] c = { 1, 2, 3, 4, 5 };
foreach (int i in a)
{
foreach (int j in b)
{
foreach (int k in c)
{
Console.WriteLine(i.ToString() + j.ToString() + k.ToString());
}
}
}
#15
List<string> list = new List<string>();
for (int i = 1; i <= 5; i++)
{
list.Add(i.ToString()+i.ToString()+i.ToString());
for (int j = i + 1; j <= 5; j++)
{
for (int k = 1; k <= 5; k++)
{
string num1 = i.ToString() + j.ToString() + k.ToString();
list.Add(i.ToString() + j.ToString() + k.ToString());
list.Add(num1.ToCharArray().Reverse().ToString());
string num2 = i.ToString() + k.ToString() + j.ToString();
list.Add(i.ToString() + k.ToString() + j.ToString());
list.Add(num2.ToCharArray().Reverse().ToString());
string num3 = k.ToString() + i.ToString() + j.ToString();
list.Add(k.ToString() + i.ToString() + j.ToString());
list.Add(num3.ToCharArray().Reverse().ToString());
}
}
}
我的也是循环 不过有点区别
第一类是:111,222,333~~
第二类是:五个选二个不重复 然后再从五个数中选一个出来插入三个位子,比如:(3)12,1(3)2,12(3), 然后将这三个数反序
主要是减少循环次数,
for (int i = 1; i <= 5; i++)
{
list.Add(i.ToString()+i.ToString()+i.ToString());
for (int j = i + 1; j <= 5; j++)
{
for (int k = 1; k <= 5; k++)
{
string num1 = i.ToString() + j.ToString() + k.ToString();
list.Add(i.ToString() + j.ToString() + k.ToString());
list.Add(num1.ToCharArray().Reverse().ToString());
string num2 = i.ToString() + k.ToString() + j.ToString();
list.Add(i.ToString() + k.ToString() + j.ToString());
list.Add(num2.ToCharArray().Reverse().ToString());
string num3 = k.ToString() + i.ToString() + j.ToString();
list.Add(k.ToString() + i.ToString() + j.ToString());
list.Add(num3.ToCharArray().Reverse().ToString());
}
}
}
我的也是循环 不过有点区别
第一类是:111,222,333~~
第二类是:五个选二个不重复 然后再从五个数中选一个出来插入三个位子,比如:(3)12,1(3)2,12(3), 然后将这三个数反序
主要是减少循环次数,
#16
我错了,,晕。。。献丑
#17
学习中~~~~~~~~~~~~~~~~~~
#18
string[] strs ={ "1", "2", "3", "4", "5" };
List<string> list = new List<string>();
int i = 0;
while (i < strs.Length)
{
int j = 0;
while (j < strs.Length)
{
int k = 0;
while (k < strs.Length)
{
string value = strs[i] + strs[j] + strs[k];
if (!list.Contains(value))
{
list.Add(value);
k++;
}
}
j++;
}
i++;
}
#1
把12345当做一个数组 for循环取数据
#2
List<string> list = new List<string>();
int i = 1;
while (i <= 5)
{
int j = i;
while (j <= 5)
{
int k = j;
while (k <= 5)
{
string value = i.ToString() + j.ToString() + k.ToString();
if (!list.Contains(value))
{
list.Add(value);
Console.WriteLine();
}
}
}
}
int i = 1;
while (i <= 5)
{
int j = i;
while (j <= 5)
{
int k = j;
while (k <= 5)
{
string value = i.ToString() + j.ToString() + k.ToString();
if (!list.Contains(value))
{
list.Add(value);
Console.WriteLine();
}
}
}
}
#3
Console.WriteLine();
==>
Console.WriteLine(value);
==>
Console.WriteLine(value);
#4
学习中~~~~~~~~~~~~~~~~~~
#5
ArrayList al = new ArrayList();
for(int i = 1; i < 6; i ++){
for(int j = 1; j < 6; j ++){
for(int k = 1; k < 6; k ++){
al.add(i.toString() + j.toString() + k.toString())
}
}
}
for(int i = 1; i < 6; i ++){
for(int j = 1; j < 6; j ++){
for(int k = 1; k < 6; k ++){
al.add(i.toString() + j.toString() + k.toString())
}
}
}
#6
for (int i = 1; i < 6; i++)
for (int j = 1; j < 6; j++)
for (int k = 1; k < 6; k++)
Console.WriteLine("{0}{1}{2}", i, j, k);
#7
真有用3 个FOR的 NB 人,3只是一个数字,它要想像成N的 好吧
#8
LS你太逗了吧
#9
别人要的是思路
#10
只是给你是简单的实现方法.
如果是N那你肯定要考虑提个方法出来.或者寻找更好的方法.
如果是N那你肯定要考虑提个方法出来.或者寻找更好的方法.
#11
支持这个
#12
杀鸡焉用牛刀?
#13
3层循环
.
.
#14
int[] a = { 1,2,3,4,5};
int[] b = { 1, 2, 3, 4, 5 };
int[] c = { 1, 2, 3, 4, 5 };
foreach (int i in a)
{
foreach (int j in b)
{
foreach (int k in c)
{
Console.WriteLine(i.ToString() + j.ToString() + k.ToString());
}
}
}
int[] b = { 1, 2, 3, 4, 5 };
int[] c = { 1, 2, 3, 4, 5 };
foreach (int i in a)
{
foreach (int j in b)
{
foreach (int k in c)
{
Console.WriteLine(i.ToString() + j.ToString() + k.ToString());
}
}
}
#15
List<string> list = new List<string>();
for (int i = 1; i <= 5; i++)
{
list.Add(i.ToString()+i.ToString()+i.ToString());
for (int j = i + 1; j <= 5; j++)
{
for (int k = 1; k <= 5; k++)
{
string num1 = i.ToString() + j.ToString() + k.ToString();
list.Add(i.ToString() + j.ToString() + k.ToString());
list.Add(num1.ToCharArray().Reverse().ToString());
string num2 = i.ToString() + k.ToString() + j.ToString();
list.Add(i.ToString() + k.ToString() + j.ToString());
list.Add(num2.ToCharArray().Reverse().ToString());
string num3 = k.ToString() + i.ToString() + j.ToString();
list.Add(k.ToString() + i.ToString() + j.ToString());
list.Add(num3.ToCharArray().Reverse().ToString());
}
}
}
我的也是循环 不过有点区别
第一类是:111,222,333~~
第二类是:五个选二个不重复 然后再从五个数中选一个出来插入三个位子,比如:(3)12,1(3)2,12(3), 然后将这三个数反序
主要是减少循环次数,
for (int i = 1; i <= 5; i++)
{
list.Add(i.ToString()+i.ToString()+i.ToString());
for (int j = i + 1; j <= 5; j++)
{
for (int k = 1; k <= 5; k++)
{
string num1 = i.ToString() + j.ToString() + k.ToString();
list.Add(i.ToString() + j.ToString() + k.ToString());
list.Add(num1.ToCharArray().Reverse().ToString());
string num2 = i.ToString() + k.ToString() + j.ToString();
list.Add(i.ToString() + k.ToString() + j.ToString());
list.Add(num2.ToCharArray().Reverse().ToString());
string num3 = k.ToString() + i.ToString() + j.ToString();
list.Add(k.ToString() + i.ToString() + j.ToString());
list.Add(num3.ToCharArray().Reverse().ToString());
}
}
}
我的也是循环 不过有点区别
第一类是:111,222,333~~
第二类是:五个选二个不重复 然后再从五个数中选一个出来插入三个位子,比如:(3)12,1(3)2,12(3), 然后将这三个数反序
主要是减少循环次数,
#16
我错了,,晕。。。献丑
#17
学习中~~~~~~~~~~~~~~~~~~
#18
string[] strs ={ "1", "2", "3", "4", "5" };
List<string> list = new List<string>();
int i = 0;
while (i < strs.Length)
{
int j = 0;
while (j < strs.Length)
{
int k = 0;
while (k < strs.Length)
{
string value = strs[i] + strs[j] + strs[k];
if (!list.Contains(value))
{
list.Add(value);
k++;
}
}
j++;
}
i++;
}