13个数的问题

it2022-05-08  11

题目:Give 7 numbers, range from 0-13. The number of 0 is uncertain, other numbers can appear only once. 0 can be converted to any number. Please check whether or not it contains 5 continuous numbers

取到7个数,0可以重复,其他不重复,0可以充当任意数,判断7个数里面是否存在5个连续数1,5,2,4,0,13,10  0->3 1,2,3,4,5,10,13 return true1,5,2,0,0,13,10  0->3 0->4 1,2,3,4,5,10,13 return true1,5,6,0,0,13,10  return false 实现代码:

/**/ ///jailusd@hotmail.com///2006-09-08 using  System; using  System.Collections.Generic; using  System.Text; namespace  SevenNumber {    class Program    {        static List<int> SevenNumber = new List<int>();        static List<int> FiveNumber = new List<int>();        static List<int> ZeroInsteadOf = new List<int>();        static void Main(string[] args)        {            int intZeroCount = 0;            //随机7个产生0-13整数,除了0其它数字不能重复            Random myRandom = new Random();            while (SevenNumber.Count < 7)            {                int intTemp = myRandom.Next(014);                if (intTemp == 0)                {                    intZeroCount++;                    SevenNumber.Add(0);                    Console.Write(intTemp.ToString() + " ");                }                else if (!SevenNumber.Contains(intTemp))                {                    SevenNumber.Add(intTemp);                    Console.Write(intTemp.ToString() + " ");                }            }            SevenNumber.Sort(); //排序            Console.Write("   ");            //输出排序后的七个数            for (int i = 0; i < 7; i++)            {                Console.Write(SevenNumber[i].ToString() + " ");            }            bool blResult = false;            //以下为核心算法            for (int i = intZeroCount; i < 7; i++)            {                int intTemp1 = 0;                int intTempZero = intZeroCount;                FiveNumber.Add(SevenNumber[i]);                for (int ii = i; ii < 6; ii++)                {                    intTemp1 = SevenNumber[ii + 1- SevenNumber[ii] - 1;                    if (intTemp1 == 0)                    {                        FiveNumber.Add(SevenNumber[ii + 1]);                    }                    else if (intTemp1 <= intTempZero)                    {                        intTempZero -= intTemp1;                        for (int j = 1; j <= intTemp1; j++)                        {                            FiveNumber.Add(SevenNumber[ii] + j);                            ZeroInsteadOf.Add(SevenNumber[ii] + j);                        }                        FiveNumber.Add(SevenNumber[ii + 1]);                    }                    else                    {                        for (int j = 1; j <= intTempZero; j++)                        {                            FiveNumber.Add(SevenNumber[ii] + j);                            ZeroInsteadOf.Add(SevenNumber[ii] + j);                        }                        ii = 5;                    }                }                if (FiveNumber.Count >= 5)                {                    blResult = true;                    Console.Write("  ");                    for (int m = 0; m < ZeroInsteadOf.Count; m++)                    {                        Console.Write("0->" + ZeroInsteadOf[m].ToString() + " ");                    }                    Console.Write("  ");                    for (int m = 0; m < FiveNumber.Count; m++)                    {                        Console.Write(FiveNumber[m].ToString() + " ");                    }                    i = 7;                }                else                {                    FiveNumber.Clear();                    ZeroInsteadOf.Clear();                }            }            if (blResult)            {                Console.Write("  return true;");            }            else            {                Console.Write("  return false;");            }            Console.ReadLine();        }    }}

运行结果:

转载于:https://www.cnblogs.com/jailu/archive/2006/09/09/499369.html


最新回复(0)