算法

算法:指为了解决某个问题而采取的步骤和方法的描述

(1)查到最大值的算法实现:

Console.Write("请输入一组数(中间用逗号隔开):");
            string strNums = Console.ReadLine();
            string[] arr_Str = strNums.Split(',');
            int max = Convert.ToInt32(arr_Str[0]);
            for (int i = 1; i < arr_Str.Length; i++)
            {
                if (max >= Convert.ToInt32(arr_Str[i]))
                {
                    max = max;
                }
                if (max < Convert.ToInt32(arr_Str[i]))
                {
                    max = Convert.ToInt32(arr_Str[i]);
                }
            }
            Console.WriteLine("最大值:"+max);

 

(2)最大公约数的算法实现:

计算两个数的最大公约数:首先定义两个数,且第一个小于第二个(如12,16);然后定义一个变量result来记录这两个数的最大公约数,从将result赋值为第一个数(12),开始检查result是否能同时整除这两个数,若不能则将result-1继续循环。

            int a, b;
            Console.Write("请输入a的值:");
            a = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入b的值:");
            b = Convert.ToInt32(Console.ReadLine());
            if (a*b!=0)
            {
                int result = Math.Min(a, b);//数学类Math,获取几个数中比较小的那个数的方法Min
                while (a % result != 0 || b % result != 0)
                {
                    result--;
                }
                Console.WriteLine("最大公约数:"+result);
            }
            else//a*b=0的情况
            {
                Console.WriteLine("两个数中不能有0!");
            }

 

(3)实现10!的算法

  int sum = 1;
            for (int i = 1; i <=10; i++)
            {
               sum *= i;
            }
            Console.WriteLine(sum);

 

(4)计算闰年:四年一闰,百年不闰,四百年再闰

            Console.Write("请输入年份:");
            int a = Convert.ToInt32(Console.ReadLine());
            if  (a % 4== 0)
            {
                if (a % 100 == 0&&a%400==0)
                {
                    Console.WriteLine("是闰年");
                }
                else if(a%100==0&&a%400!=0)
                {
                    Console.WriteLine("不是闰年");
                }
                else 
                {
                    Console.WriteLine("是闰年");
                }                          
            }
            else
            {
                Console.WriteLine("不是闰年");
            }

(5)冒泡排序法:数据在数组中不断向前移动

基本思想:比较相邻的两个元素值,如果满足条件,把较小的元素移到数组前面,大的移到后面,最后较小的元素会从底部上升到顶部

          

            
 

            int[] arr = new int[] { 1, 12, 15, 412, 154, 12, 31564, 1515, 3156, 14, 15 };
           
            Console.WriteLine("初始数组:");
            for (int k = 0; k < arr.Length; k++)
                {
                    Console.WriteLine(arr[k]);
                }

            
            int temp;
            for (int i = 0; i < arr.Length-1; i++)
            {
                for (int j =i+1; j < arr.Length; j++)
                {
                    if (arr[i] > arr[j])//大于时为顺序排序,小于时为逆序排序
                    {
                        temp = arr[i];
                        arr[i] = arr[j];
                        arr[j] = temp;//这三步就等于如果arr[i]大于arr[j],则两者互换位置
                    }                           
                }              
            }
            Console.WriteLine("冒泡排序后的数组:");
                for (int i = 0; i < arr.Length; i++)
                {
                Console.WriteLine(arr[i]);
                }

(6)选择排序方法

基本思想:将指定排序位置与其他的数组元素分别对比,如果满足条件则交换位置

区别于冒泡排序:不是将相邻的元素对比

            int[] arr = new int[] { 114, 122, 31, 51, 345 };
            Console.WriteLine("初始数组:");
            for (int i = 0; i < arr.Length; i++)
            {
                Console.Write(arr[i]+" ");
            }
            Console.WriteLine();
            Console.WriteLine("------------------------");

            int min;
            for (int i = 0; i < arr.Length-1; i++)
            {
                min = i;
                for (int j =i+1; j < arr.Length; j++)
                {
                    if (arr[j] < arr[min])
                    {
                        min = j;
                    }
                }
                int temp = arr[min];
                arr[min] = arr[i];
                arr[i] = temp;
            }
            Console.WriteLine("选择排序后的数组:");
            for (int i = 0; i < arr.Length; i++)
            {
                Console.Write(arr[i]+" ");
            }
            Console.ReadLine();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值