`
net_liu
  • 浏览: 231321 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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;
        }

 

分享到:
评论

相关推荐

    墨卡托投影C#算法实现

    墨卡托投影C#算法实现 http://blog.csdn.net/guanghua2009/article/details/6641548

    C# 算法实现(数据结构).rar

    本资料“C# 算法实现(数据结构).rar”显然聚焦于如何用C#来实现各种数据结构和算法。 1. **数据结构**: - **数组**:是最基本的数据结构,用于存储同类型元素的集合。C#中的数组可以是一维、二维或多维的。 - **...

    C#算法实现(哈希表 图 二叉树 KMP prim 最短路径 各种排序)

    本压缩包文件"我的算法"(MyAlgorithm)显然包含了一些核心的算法实现,包括哈希表、图算法、二叉树、KMP字符串匹配算法、Prim最小生成树算法以及各种排序算法。让我们逐一深入探讨这些知识点。 1. **哈希表**:...

    BP神经网络C#算法实现

    Bp神经网络算法C#代码实现。6-18-1模式。6个输入,18个隐层,1个输出。

    经典算法的C#源码实现

    经典的排序算法C#源码,包括: 经典排序算法 - 快速排序Quick sort 经典排序算法 - 桶排序Bucket sort 经典排序算法 - 插入排序Insertion sort 经典排序算法 - 基数排序Radix sort 经典排序算法 - 鸽巢排序...

    C#实现遗传算法

    ### C# 实现遗传算法详解 #### 一、遗传算法简介 遗传算法(Genetic Algorithm, GA)是一种基于自然选择和遗传学机理的全局优化概率搜索算法。它通过模拟自然界中的生物进化过程来求解优化问题。在遗传算法中,问题...

    C# 抓边算法 实现

    本篇文章将深入探讨如何使用C#语言结合最小二乘法来实现抓边算法。最小二乘法是一种优化技术,常用于解决线性回归、曲线拟合等问题,这里它被用来优化边缘检测。 首先,我们要理解边缘检测的重要性。在图像分析中,...

    A*算法C#实现

    在C#实现中,A*算法通常会涉及到以下几个关键知识点: 1. **图数据结构**:A*算法是基于图的,因此理解图的基本概念至关重要。图由节点(顶点)和边组成,每个节点代表一个位置,边表示节点之间的连接。在路径规划...

    c#实现D8单流向算法

    C#作为一种强大的编程语言,可以很好地实现D8算法的编程逻辑。 D8算法的基本原理是,对于每个栅格节点,它会沿着坡度最大的方向流动。在八邻接的网格系统中,每个节点有八个可能的流向:上、下、左、右以及四个对角...

    C#算法打包 算法类库 近百套C#源码 微软公司内部程序员培训算法大全 源码

    本资源包“C#算法打包 算法类库 近百套C#源码 微软公司内部程序员培训算法大全 源码”正是针对C#开发者精心准备的一份宝藏,旨在提升程序员对算法的理解和实战能力。 这个压缩包包含了近百套C#源码,涵盖了多种经典...

    ECC算法 C#实现代码

    总的来说,这个ECC算法的C#实现是一个完整的加密解密系统,通过`ECC.cs`文件实现核心的椭圆曲线运算,而`Program.cs`文件则作为用户交互的接口,将ECC算法应用到实际的数据保护场景中。学习和理解这段代码,不仅可以...

    C#实现AES加密解密算法

    ### C# 实现 AES 加密解密算法 #### 概述 在计算机科学与信息安全领域,数据加密技术是一项至关重要的技术。AES(Advanced Encryption Standard,高级加密标准)是一种广泛使用的对称加密算法,用于保护敏感数据的...

    9种预测、处理算法实现(源代码)c#

    C#作为一种强大的编程语言,提供了丰富的工具和库来实现各种算法。以下是对标题和描述中提到的九种预测和处理算法的详细解读: 1. **线性回归**:这是一种基本的统计学方法,用于建立因变量与一个或多个自变量之间...

    C# 实现的银行家算法

    在C#环境下实现银行家算法,我们可以创建一个模拟银行系统,其中进程是借款的客户,而资源则是银行的贷款。 首先,我们需要理解银行家算法的四个关键数据结构: 1. **可用资源向量(Available)**:表示当前系统中...

    blowfish算法的C#实现

    总的来说,`BlowfishClass`是一个用于C#中的Blowfish算法实现的类,它提供了加密和解密的功能,是保护敏感数据和实现安全通信的重要工具。理解并正确实现这种算法可以帮助你提升在信息安全领域的专业技能。

    C#实现Dijkstra算法

    C#实现Dijkstra算法是图论中的一个经典算法,用于寻找图中两个节点之间的最短路径。...理解这些概念并结合实际的输入数据,你就能编写出有效的Dijkstra算法实现,解决寻找图中两点间最短路径的问题。

    c# 实现轮询算法实例代码

    下面我们将深入探讨C#中轮询算法的实现以及在给定代码中的应用。 首先,我们要理解轮询算法的基本概念。轮询算法简单来说就是按照固定的顺序遍历一组元素,每次遍历到一个元素时执行相应的操作。在本例中,算法的...

    蚁群算法c#实现

    在C#环境中实现蚁群算法,我们可以利用C#的面向对象特性,构建一个灵活可配置的框架,以便于理解和调整算法参数。 首先,我们要定义基本的蚁群类,它包含蚂蚁、食物源、路径选择规则、信息素更新策略等核心组件。...

    基于C#运用遗传算法的排课系统

    排课问题是典型的组合优化和不确定性...针对这种情况,给出了排课问题的数学模型,提出了基于C#运用遗传算法解决方案。结果表明,该算法能比较有效的解决排课问题。该方法易于学习和应用,且不必依赖特殊的实现模式。

    遗传算法c#实现,参考,学习

    本项目是基于C#编程语言实现的遗传算法,适用于学习和参考。 遗传算法的基本原理是模拟生物的自然选择、遗传、变异等过程来寻找问题的最优解。首先,通过随机生成一组初始解(称为种群),这些解代表可能的解决方案...

Global site tag (gtag.js) - Google Analytics