永发信息网

列出1到11包括1和11的5个一组的数字,不能重复

答案:4  悬赏:0  手机版
解决时间 2021-03-07 03:30
  • 提问者网友:放下
  • 2021-03-06 10:37
其实就是11选5的彩票的玩法,我想列出1到11的号码,5个一组在1-11里不能重复,C#编写,请给个方法
最佳答案
  • 五星知识达人网友:一袍清酒付
  • 2021-03-06 10:43
Random ran = newRandom();
List array = newList();
for (int i = 0; i < 5; i++)
{
if (i == 0)

array.Add(ran.Next(1, 11));
else

{
int number = ran.Next(1, 11);
bool repeater=true;
foreach (int n in array)

{
if (number == n)

{
repeater = false;
i--;
}
}
if (repeater)

array.Add(number);
}
}
全部回答
  • 1楼网友:duile
  • 2021-03-06 13:47
这个很好排,我都排了快3o0了!还有好多没排!
  • 2楼网友:零点过十分
  • 2021-03-06 12:15
不知道是不是这个意思。。反正这题数组长度比只有5个。。可以用递归。。要是多的话最好用随机索引。。 public static string GetNums() { string str = ""; Random ra = new Random(); int tmp = 0; int minValue = 1; //最小值 int maxValue = 11; //最大值 int[] arrNum = new int[5]; for (int i = 0; i < 5; i++) { tmp = ra.Next(minValue, maxValue); //随机取数 arrNum[i] = getNum(arrNum, tmp, minValue, maxValue, ra); //取出值赋到数组中 } } public static int getNum(int[] arrNum, int tmp, int minValue, int maxValue, Random ra) { int n = 0; while (n <= arrNum.Length - 1) { if (arrNum[n] == tmp) //利用循环判断是否有重复 { tmp = ra.Next(minValue, maxValue); //重新随机获取。 getNum(arrNum, tmp, minValue, maxValue, ra);//递归:如果取出来的数字和已取得的数字有重复就重新随机获取。 } n++; } return tmp; }
  • 3楼网友:十年萤火照君眠
  • 2021-03-06 11:19
将1-11存入一个列表中 List list, 随机产生一个数字index,将list[index]作为选出的数字, 然后将选出的数字从列表中移除,list.removeat(index), 这样循环5次就可以得到了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯