首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

年末了,特贡献一些C#有意思的算法题

2014-01-05 
年底了,特贡献一些C#有意思的算法题private static void Print(int number){Console.WriteLine(number)if

年底了,特贡献一些C#有意思的算法题

private static void Print(int number)        {            Console.WriteLine(number);            if (number % 200 != 0)            {                number = number + 1;                Print(number);            }        }

上面的参考答案用了if,看错了题目,我那个汗呢。。。

补上参考答案:

 static void Main(string[] args)        {            Print(1);            Console.Read();        }        private static void Print(int number)        {            try            {                Console.WriteLine(number);                int i = 1/(200 - number);                number = number + 1;                Print(number);            }            catch (DivideByZeroException e)            {            }        }

根据大家的讨论,比较好的答案:

 private static string RepeatString(string str, int repeatCount)        {            var source = str.ToCharArray();            var dest = new char[source.Length * repeatCount];            for (int i = 0; i < repeatCount; i++)            {                Buffer.BlockCopy(source, 0, dest, source.Length * i * 2, source.Length * 2);            }            return new String(dest);        }

4:给定一个整形数组,请用16进制的方式显示数组的值。

比方:一个short类型数组:[255,255,255],输出的结果为 00FF 00FF 00FF,如果是byte类型,则输出为 FF FF FF

参考答案

 private static void DisplayArrayValues(Array arr)        {            int elementLength = Buffer.ByteLength(arr) / arr.Length;            string formatString = String.Format("{{0:X{0}}} ", 2 * elementLength);            for (int ctr = 0; ctr < arr.Length; ctr++)                Console.Write(formatString, arr.GetValue(ctr));            Console.WriteLine();        }

5:请自行实现一个函数,该函数的功能是将用户输入的numeric string 转换为integer。

参考答案:

private static int StringToInt(string str)        {            int result = 0;            if (Regex.IsMatch(str, @"^-?[0-9]\d*"))            {                bool isNegative = false;                if (str.IndexOf('-') != -1)                {                    str = str.Substring(1);                    isNegative = true;                }                for (int i = 0; i < str.Length; i++)                {                    result = result * 10 + (str[i] - '0');                }                result = isNegative ? result * -1 : result;            }            return result;        }

6:给定一个整数num,判断这个整数是否是2的N次方。

7:试编写一副52张扑克牌的洗牌算法。

提示:每次洗牌的时候,给牌一个随机因子。

8:一个牧场目前一共有20头刚出生的羊,母羊、公羊各一半。假如母羊5岁时后每年生一胎(母羊,公羊各一半)。羊活到10岁后死亡。请问20年后这个牧场有多少只羊? 请用C#写出算法。

这个题目原题有点蛋疼,我按我的意思,修改了下题目。

热点排行