c#问题 一个int类型一维数组,比如int[] array=new int[10],此时我想对这个数组中1各个元素进行赋值。
每个元素可以从1到4,比如a[0]可以是1,2,3,4.之后我想要全部组合,应该是4的N次方种组合吧,求告知如何进行循环,可以一次拿到这4的N次方种初始化后的数组,之后我...
每个元素可以从1到4,比如a[0]可以是1,2,3,4. 之后我想要全部组合,应该是4的N次方种组合吧,求告知如何进行循环,可以一次拿到这4的N次方种初始化后的数组,之后我想对他们一一操作,比如第一组是0000000000,之后我操作完了,就可以产生下一组1,0,0,0,0,0,0,0,0,0,之后2,0,0,0,0,0,0,0,0,之后3,0,0,0,0,0,0,,0,0,0,等等,最后到4,4,4,4,4,4,4,4,4,4,4,4。 求指点指点,谢谢。
展开
1个回答
展开全部
可以为0的话就是5的10次方种组合,你可以这样,
int[] data = new int[10];
int[] template = new int[] { 0, 1, 2, 3, 4 };
int length = (int)Math.Pow(template.Length, data.Length);
for (int i = 0; i < length; i++)
{
int num = i;
for (int j = data.Length - 1; j >= 0; j--)
{
data[j] = template[num % template.Length];
num /= template.Length;
}
//已生成,可以在这里进行操作
}
int[] data = new int[10];
int[] template = new int[] { 0, 1, 2, 3, 4 };
int length = (int)Math.Pow(template.Length, data.Length);
for (int i = 0; i < length; i++)
{
int num = i;
for (int j = data.Length - 1; j >= 0; j--)
{
data[j] = template[num % template.Length];
num /= template.Length;
}
//已生成,可以在这里进行操作
}
追问
恩~~豁然开朗,十进制转换五进制。太感谢了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询