当前位置: 代码迷 >> ASP.NET >> 经典笔考题疑问?产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
  详细解决方案

经典笔考题疑问?产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复

热度:5493   发布时间:2013-02-25 00:00:00.0
经典笔试题疑问?产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。

int[] intArr=new int[100];

ArrayList myList=new ArrayList();

Random rnd=new Random();

while(myList.Count<100)

{

int num=rnd.Next(1,101);

if(!myList.Contains(num))

myList.Add(num);

}

  for(int i=0;i<100;i++)

  intArr[i]=(int)myList[i]; 




请问myList.Count<100,循环了几个啦?






------解决方案--------------------------------------------------------
C# code
//一句代码就可以搞定的事 为何写那么复杂var lst=Enumerable.Range(1,100).OrderBy(l=>Guid.NewGuid()).ToList();
------解决方案--------------------------------------------------------
循环 至少 100次
------解决方案--------------------------------------------------------
Linq的确很强大
------解决方案--------------------------------------------------------
0到99刚好循环一百次
------解决方案--------------------------------------------------------
循环 至少 100次
C# code
if(!myList.Contains(num))   myList.Add(num);
------解决方案--------------------------------------------------------
又归结到数组全排列上...这个网上的算法没看懂
我就想到了全for..
  相关解决方案