C#算法实现

C#算法实现

  //求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m
        public static void GetMathInfo()
        {
            int Num = Convert.ToInt32(Console.ReadLine());
            int Sum = 0;
            for (int i = 0; i < Num + 1; i++)
            {
                if ((i % 2) == 1)
                { 
                    Sum += i;
                }
                else
                { 
                    Sum = Sum - i; 
                }
            }
            System.Console.WriteLine(Sum.ToString());
            System.Console.ReadLine();

        }


        //求两个数的最大公约数
        public static void GetYueshu(int num1, int num2)
        {
            int min = num1 < num2 ? num1 : num2;
            for (int i = min; i > 1; i--)
            {
                if (num1 % i == 0 && num2 % i == 0)
                {
                    Console.WriteLine(i);
                }
            }
            Console.ReadKey();
        }

        //合并两个数组2
        public static void UnionArray2()
        {
            String[] str1 = { "1", "2", "3" };
            String[] str2 = { "2", "3", "4", "5" };
            ArrayList array = new ArrayList();
            array.AddRange(str1);
            foreach (string s in str2)
            {
                if (!array.Contains(s))
                {
                    array.Add(s);
                }
            }

            for (int i = 0; i < array.Count; i++)
            {
                Console.WriteLine(array[i].ToString());
            }
            Console.ReadKey();
        }


        //合并两个数组1
        public static void UnionArray()
        {
            String[] str1 = { "1", "2", "3" };
            String[] str2 = { "2", "3", "4", "5" };
            string[] str3 = str1.Union(str2).Distinct().ToArray();
            for (int i = 0; i < str3.Length; i++)
            {
                Console.Write(str3[i] + " ");
            }
            Console.ReadKey();

        }

        //贷款n  t年还清 每年还多少 利率s
        //公式:贷款*利率*(1+利率)^期数/((1+利率)^期数-1)
        public static void GetMh(double n, int t, double s)
        {
            double money = n * s * Math.Pow(1 + s, t) / (Math.Pow(1 + s, t) - 1);
            Console.WriteLine(money);
            Console.ReadKey();
        }


        //数组为0到10000,求其中出现次数最多的数
        private static void GetMath()
        {
            int[] hash = new int[10001];
            int[] items = new int[] { 1, 3, 78, 3, 56, 10, 4, 90, 3, 1001 };

            int max = 0, item = 0;

            for (int i = 0; i < items.Length; i++)
            {
                hash[items[i]]++;

                if (hash[items[i]] > max)
                {
                    item = items[i];
                    max = hash[items[i]];
                }
            }
            Console.WriteLine(item);
            Console.ReadKey();
        }


        //给出一个整数数组,求其中任意两个元素之差的最大值
        public static int GetMaxRang(int[] array)
        {
            int min = array[0];
            int max = array[0];
            foreach (int i in array)
            {
                if (i < min)
                {
                    min = i;
                }
                if (i > max)
                {
                    max = i;
                }
            }
            return max - min;
        }


        //产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
        private static void RandMethod()
        {
            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);
            }
            myList.Sort();
            for (int i = 0; i < 100; i++)
            {
                intArr[i] = (int)myList[i];
                Console.Write(intArr[i] + " ");
            }

        }


        // 一列数的规则如下: 1、1、2、3、5、8、13、21、34......  求第30位数是多少, 用递归算法实现。
        private static int Foo(int i)
        {
            if (i < 0)
                return 0;
            if (i > 0 && i < 2)
                return 1;
            else
                return Foo(i - 1) + Foo(i - 2);
        }


        //冒泡排序
        private static void MaoPao()
        {
            int[] array = { 2, 67, 45, 33, 54, 200 };
            int temp = 0;
            for (int i = 0; i < array.Length - 1; i++)
            {
                for (int j = i + 1; j < array.Length; j++)
                {
                    if (array[j] < array[i])
                    {
                        temp = array[i];
                        array[i] = array[j];
                        array[j] = temp;
                    }
                }
            }

            for (int i = 0; i < array.Length; i++)
            {
                Console.Write(array[i] + " ");
            }
            Console.ReadKey();
        }
 //Linp实现 获取重复数据
        private static void GetDataLinp()
        {
            String[] arr = { "18701687466", "18701687466", "18701687465", "18701687465", "18701687464", "18701687463"  };
            var linq = from a in arr group a by a into g where g.Count() > 1 select g;
            foreach (var l in linq)
                Console.WriteLine(l.Key);
        }
 //获取重复数据 只需要传一个DataTable 进来即可
        private static void GetMathss(DataTable dt)
        {
            String[] intArray = new String[dt.Rows.Count];//声明数组变量
            int i = 0;
            foreach (DataRow dr in dt.Rows)//给数组赋值
            {
                intArray[i] = dr[0].ToString();
                i++;
            }  //List用于存储从数组里取出来的不相同的元素
            List<String> listInt = new List<String>();//用来保存不重复数据
            List<String> listInts = new List<String>();//用来保存重复数据
            foreach (String eachInt in intArray)
            {
                if (!listInt.Contains(eachInt))
                {
                    listInt.Add(eachInt);
                }
                else
                {
                    if (listInts.Contains(eachInt))
                    {
                        continue;
                    }
                    listInts.Add(eachInt);
                }
            }
            //最后从List里取出各个数字进行操作         
            foreach (String eachInt in listInts)
            {
                Console.WriteLine(eachInt); //打印每个数字
            }
        }
        //给DataTable赋值
        private static DataTable GetDatatable() 
        {
            DataTable MyDataTable = new DataTable();
            MyDataTable.Columns.Add(new DataColumn("联系电话", typeof(string)));
            DataRow dr;
            dr = MyDataTable.NewRow();
            dr["联系电话"] = "123456789";
            MyDataTable.Rows.Add(dr);
            dr = MyDataTable.NewRow();
            dr["联系电话"] = "12345678";
            MyDataTable.Rows.Add(dr);
            dr = MyDataTable.NewRow();
            dr["联系电话"] = "123456789";
            MyDataTable.Rows.Add(dr);
            return MyDataTable;
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值