面试中常问的.NET算法问题

1.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
 1    //产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。 
 2    public void Sort()
 3    {
 4        int[] myArr = new int[100];
 5        ArrayList myList = new ArrayList();
 6        Random rnd = new Random();     
 7        while (myList.Count<100)
 8        {
 9            int num = rnd.Next(1101); //必须大于等于最小的下界;小于最大的上界
10            if (!myList.Contains(num))
11            {
12                myList.Add(num);
13            }

14        }

15        for (int i = 0; i < 100; i++)
16        {
17            myArr[i] = (int)myList[i];
18            Response.Write("" + i + "个数为:"+myArr[i] + "<br>");
19        }

20    }
2.一列数的规则如下: 1、1、2、3、5、8、13、21、34......  求第40位数是多少, 用C#递归算法实现
 1   // 一列数的规则如下: 1、1、2、3、5、8、13、21、34  求第30位数是多少, 用递归算法实现
 2    public int Foo(int i) //斐波那契数列
 3    {
 4        if (i <= 0)
 5            return 0;
 6        else if (i > 0 && i <= 2)
 7            return 1;
 8        else
 9            return Foo(i - 1+ Foo(i - 2); 
10    }

这个随后会继续添加,并在整理一份.net其他方面的面试问题。
posted @ 2008-03-12 23:54  金鱼  阅读(2088)  评论(3编辑  收藏  举报