.NET/C#⾯试题常见的算法

static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }

        /// <summary>
        /// 求质数
        /// 质数也成为素数,质数就是这个数除了1和他本身两个因数以外,没有其他因数的数,叫做质数,和他相反的是合数,就是除了1和他本身两个因数以外,还友其他因数的数叫做合数。
        /// </summary>
        /// <param name="MaxNumber">该范围内共有多少质数</param>
        static void PrimeNumber(int MaxNumber)
        {
            int count = 0;
            for (int i = 2; i <= MaxNumber; i++)
            {
                int p = 0;
                for (int y = 1; y <= i; y++)
                {
                    if (i % y == 0)
                    {
                        p++;
                    }
                }
                if (p == 2)
                {
                    Console.WriteLine("{0}", i);
                    count++;
                }
            }
            Console.WriteLine("{0}以内共有{1}个质数", MaxNumber, count);
        }


        /// <summary>
        /// 有⼀列数1,1,2,3,5,........求第30个数.
        /// </summary>
        /// <param name="i">位数</param>
        /// <returns></returns>
        static int Law(int i)
        {
            //递归实现
            if (i <= 0)
                return 0;
            else if (i > 0 && i <= 2)
                return 1;
            else
                return Law(i - 1) + Law(i - 2);

            //非递归实现

            //int a = 1;
            //int b = 1;
            //int c = 0;
            //for (int y = 0; y < y-2; y++)
            //{
            //    c = a + b;
            //    a = b;
            //    b = c;
            //}
            //Console.WriteLine("第30个数是{0}", c);
        }


        /// <summary>
        /// 冒泡排序
        /// </summary>
        /// <param name="arr">要排序的数组</param>
        static void BubbleSort(int[] arr)
        {
            for (int i = 0; i < arr.Length - 1; i++)
            {
                bool isSorted = true;//有序标记,每一轮的初始是true
                for (int j = 0; j < arr.Length - i - 1; j++)
                {
                    if (arr[j + 1] < arr[j])
                    {
                        isSorted = false;//有元素交换,所以不是有序,标记变为false
                        int t = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = t;
                    }
                }
                //一趟下来是否发生位置交换,如果没有交换直接跳出大循环
                if (isSorted)
                    break;
            }
        }


        /// <summary>
        /// 阶乘
        /// </summary>
        /// <param name="a">阶乘数字</param>
        /// <returns></returns>
        static int Factorial(int a)
        {
            if (a == 1)
            {
                return 1;
            }
            else
            {
                return a * Factorial(a - 1);
            }
        }


        /// <summary>
        /// 将输⼊的整型数组,合并转换为逗号分隔的字符串。
        /// </summary>
        /// <param name="arr">数组</param>
        static void ArryToString(int[] arr)
        {
            StringBuilder s = new StringBuilder();
            foreach (var item in arr)
            {
                s.Append(item + ",");
            }
            string a = s.ToString();
            a = a.Remove(s.Length - 1);
            Console.WriteLine("转换后的字符串为:" + a);
        }


        /// <summary>
        /// 产⽣⼀个int数组,⻓度为100,并向其中随机插⼊1-100,并且不能重复。
        /// </summary>
        static void RandomArray()
        {
            int[] number = new int[100];
            List<int> list = new List<int>();
            Random r = new Random();
            while (list.Count < 100)
            {
                int n = r.Next(1, 101);
                if (!list.Contains(n))
                {
                    list.Add(n);
                }
            }
            for (int i = 0; i < 100; i++)
            {
                number[i] = list[i];
                Console.Write(number[i]+ " "); 
            }
           
        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值