1,数组分析器:
        #region 创建数组
        Console.Write("请输入数组的长度:");
        int len = int.Parse(Console.ReadLine());
        int[] numbers = new int[len];
        for (int i = 0; i < numbers.Length; i++)
        {
            Console.Write("请输入数组的第" + (i + 1) + "项:");
            numbers[i] = int.Parse(Console.ReadLine());
        }
        #endregion
        Console.Clear();
        #region 升序排序
        for (int i = 0; i < numbers.Length - 1; i++)
        {
            for (int j = i + 1; j < numbers.Length; j++)
            {
                if (numbers[i] > numbers[j])
                {
                    int temp = numbers[i];
                    numbers[i] = numbers[j];
                    numbers[j] = temp;
                }
            }
        }
        #endregion
        #region 输出数组
        Console.WriteLine("您输入的数字排序后如下:");
        for (int i = 0; i < numbers.Length; i++)
        {
            Console.Write(numbers[i] + " ");
        }
        Console.WriteLine();
        #endregion
        #region 寻找奇数
        Console.WriteLine("其中,以下数字是奇数:");
        for (int i = 0; i < numbers.Length; i++)
        {
            if (numbers[i] % 2 != 0)
            {
                Console.Write(numbers[i] + " ");
            }

        }
        Console.WriteLine();
        #endregion
        #region 寻找质数
        Console.WriteLine("以下数字是质数:");
        for (int i = 0; i < numbers.Length; i++)
        {
            bool isFind = false;
            for (int j = 2; j < numbers[i]; j++)
            {
                if (numbers[i] % j == 0)
                {
                    isFind = true;
                    break;
                }
            }
            if (!isFind)
            {
                Console.Write(numbers[i] + " ");
            }
        }
        #endregion
        Console.ReadLine();
    }
}

2,分解质因数

#region 1.提示并获取用户输入的合数,将该合数保存到变量number中
        int number;
        while (true)
        {
            Console.Write("请输入一个合数(大于1):");
            number = int.Parse(Console.ReadLine());
            if (number <= 1)
            {
                Console.Write("输入有误,输入的数学必须大于1,按回车键继续");
                Console.ReadLine();
                Console.Clear();
            }
            else
            {
                #region 判断number是不是质数
                bool isFind = false;
                for (int i = 2; i < number; i++)
                {
                    if (number % i == 0)
                    {
                        isFind = true;
                        break;
                    }
                }
                if (isFind)
                {
                    //不是质数
                    break;
                }
                else
                {
                    //是质数
                    Console.Write("输入有误,输入的数字必须是合数,按回车键继续");
                    Console.ReadLine();
                    Console.Clear();
                }
                #endregion
            }
        }
        #endregion

        #region 2.得到变量number所有的质因数,把它们保存到集合factors中
        List<int> factors = new List<int>();
        int n = number;
        while (n != 1)
        {
            for (int i = 2; i <= n; i++)
            {
                if (n % i == 0)
                {
                    //i就是n的最小质因数
                    n = n / i;
                    factors.Add(i);
                    break;
                }
            }
        }

        #endregion

        #region 3.输出结果
        string result = number + "=";
        for (int i = 0; i < factors.Count; i++)
        {
            result += factors[i];
            if (i < factors.Count - 1)
            {
                result += "×";
            }
        }
        Console.Write(result);
        #endregion

        Console.ReadLine();

3,斐波拉契数列

Console.Write("请输入斐波拉契数列的长度:");
        int n = int.Parse(Console.ReadLine());

        int[] numbers = new int[n];
        //给数组的每一项赋值
        for (int i = 0; i < numbers.Length; i++)
        {
            if (i <= 1)
            {
                numbers[i] = 1;
            }
            else
            {
                numbers[i] = numbers[i - 1] + numbers[i - 2];
            }
        }

        //遍历输出数组
        foreach (int item in numbers)
        {
            Console.Write(item + "\t");
        }
        Console.ReadLine();
    }
}

4,反序输出

{
        Console.Write("请输入一个字符串:");
        string input = Console.ReadLine();
        string reverse = "";
        for (int i = input.Length - 1; i >= 0; i--)
        {
            reverse += input[i];
        }
        Console.Write(reverse + ":是串符字的入输你");
        Console.ReadLine();
    }
}

5,控制台日历

     while (true)
        {
            #region 获取正确的年份和月份
            int year, month;
            while (true)
            {
                Console.Write("请输入年份(1900-2100):");
                year = int.Parse(Console.ReadLine());
                if (year > 2100 || year < 1900)
                {
                    Console.Write("年份输入错误,按回车键后重新输入");
                    Console.ReadLine();
                    Console.Clear();
                }
                else
                {
                    Console.Write("请输入月份(1-12):");
                    month = int.Parse(Console.ReadLine());
                    if (month < 1 || month > 12)
                    {
                        Console.Write("月份输入错误,按回车键后重新输入");
                        Console.ReadLine();
                        Console.Clear();
                    }
                    else
                    {
                        break;
                    }
                }
            }
            #endregion

            #region 获得该年该月的所有日期包括前面的空白,保存到一个字符串集合dates中
            List<string> dates = new List<string>();

            #region 将空白加入到集合
            //1.计算1900年 到 year-1 年,经过的天数
            int crossDaysOfYear = 0;
            for (int i = 1900; i < year; i++)
            {
                //循环变量i就代表的是某一年
                if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
                {
                    crossDaysOfYear += 366;
                }
                else
                {
                    crossDaysOfYear += 365;
                }
            }

            //2. 在变量year这一年,从1月到month-1月经过的天数
            int crossDaysOfMonth = 0;
            for (int i = 1; i < month; i++)
            {
                //循环变量i,就是某一月
                if (i == 2)
                {
                    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
                    {
                        crossDaysOfMonth += 29; //闰二月
                    }
                    else
                    {
                        crossDaysOfMonth += 28;//普通二月
                    }
                }
                else if (i % 2 != 0 && i <= 7 || i % 2 == 0 && i >= 8)
                {
                    crossDaysOfMonth += 31;//大月
                }
                else
                {
                    crossDaysOfMonth += 30;//小月
                }
            }

            int crossDays = crossDaysOfYear + crossDaysOfMonth;//经过的总天数
            int dayOfWeek = crossDays % 7 + 1;//year-month-1 是星期几
            int space = dayOfWeek - 1; //前面的空格数量
            for (int i = 0; i < space; i++)
            {
                dates.Add("");
            }
            #endregion

            #region 将日期数字加入到集合
            int days;
            //计算year-month 这一月的天数
            if (month == 2)
            {
                if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
                {
                    days = 29;//闰二月
                }
                else
                {
                    days = 28;//普通二月
                }
            }
            else if (month <= 7 && month % 2 != 0 || month > 7 && month % 2 == 0)
            {
                days = 31;//大月
            }
            else
            {
                days = 30;//小月
            }
            for (int i = 1; i <= days; i++)
            {
                dates.Add(i.ToString());
            }
            #endregion

            #endregion

            #region 输出结果
            Console.WriteLine("**************************************************");
            Console.Write("一\t二\t三\t四\t五\t六\t日");
            for (int i = 0; i < dates.Count; i++)
            {
                if (i % 7 == 0)
                {
                    Console.WriteLine();
                }
                Console.Write(dates[i] + "\t");
            }
            Console.WriteLine();
            Console.WriteLine("**************************************************");
            #endregion

            Console.Write("按回车键后继续");
            Console.ReadLine();
        }
       
    }
}

posted on 2017-03-05 16:08  十万伏特x  阅读(487)  评论(0编辑  收藏  举报