C#有意思的算法题
年底了,特贡献一些C#有意思的算法题
2013年,即将要过去了。屌丝C#程序员们拿到了年终奖不?是不是又想蠢蠢欲动了?是不是想通过跳槽来为自己实现加薪的梦想?好吧,跳槽之前还是做点准备吧,准备好C#的笔试吧。这里我收集了些奉献给大家,大家还有比较有意思的,也可以拿出来,让大家共同学习下。
注:部分题目之后会奉上参考答案。
请看题:
1:不允许使用循环语句、条件语句,在控制台中打印出1-200这200个数。
参考答案:这里我使用的是递归。

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)
{
}
}

如果题目再限制不能使用递归,那又该如何实现呢?
2:有5个Aspx页面,分别为"Page_1.aspx","Page_10.aspx","Page_100.aspx","Page_11.aspx","Page_111.aspx",请编写代码,让5个Aspx页面按下面的顺序输出:
Page_1.aspx
Page_10.aspx
Page_11.aspx
Page_100.aspx
Page_111.aspx
参考答案:
private static void Order()
{
var pageList = new[] { "Page_1.aspx", "Page_10.aspx", "Page_100.aspx", "Page_11.aspx", "Page_111.aspx" };
pageList = pageList.OrderBy(s => int.Parse(Regex.Match(s, @"\d+").Value)).ToArray();
Array.ForEach(pageList,Console.WriteLine);
}
3:给定一个字符串,试编写代码,实现重复N倍输出字符串的功能。
这个题目要注意的是char在C#中占用的是两个字节。
参考答案:

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头1岁的羊,母羊、公羊各一半。假如母羊5岁时后每年生一胎(母羊,公羊各一半)。羊活到10岁后死亡。请问20年后这个牧场有多少只羊? 请用C#写出算法。
这个题目原题有点蛋疼,我按我的意思,修改了下题目。
C#有意思的算法题的更多相关文章
- 年底了,特贡献一些C#有意思的算法题
2013年,即将要过去了.屌丝C#程序员们拿到了年终奖不?是不是又想蠢蠢欲动了?是不是想通过跳槽来为自己实现加薪的梦想?好吧,跳槽之前还是做点准备吧,准备好C#的笔试吧.这里我收集了些奉献给大家,大家 ...
- 记一道有意思的算法题Rotate Image(旋转图像)
题出自https://leetcode.com/problems/rotate-image/ 内容为: You are given an n x n 2D matrix representing an ...
- 有意思的算法题:有10个文件,每个文件大概有10G,求里面最大的100个数;
算法思路 1: 第一个阶段:对于单个10G文件而言 1. 初始化:先取100个数,构建最小堆: 开始比较: 2. 取一个数 A,与最小堆的根节点进行比较: 3. 如果 A > 最小堆根节点,则替 ...
- 简单的算法题, Find Minimum in Rotated Sorted Array 的Python实现。
简单的算法题, Find Minimum in Rotated Sorted Array 的Python实现. 题目: Suppose a sorted array is rotated at som ...
- 经典算法题每日演练——第十六题 Kruskal算法
原文:经典算法题每日演练--第十六题 Kruskal算法 这篇我们看看第二种生成树的Kruskal算法,这个算法的魅力在于我们可以打一下算法和数据结构的组合拳,很有意思的. 一:思想 若存在M={0, ...
- 经典算法题每日演练——第八题 AC自动机
原文:经典算法题每日演练--第八题 AC自动机 上一篇我们说了单模式匹配算法KMP,现在我们有需求了,我要检查一篇文章中是否有某些敏感词,这其实就是多模式匹配的问题. 当然你也可以用KMP算法求出,那 ...
- leetcode算法题(JavaScript实现)
题外话 刷了一段时间的codewars的JavaScript题目之后,它给我最大的感受就是,会帮助你迅速的提升你希望练习的语言的API的熟悉程度,Array对象.String对象等原生方法,构造函数. ...
- 面试经典算法题集锦——《剑指 offer》小结
从今年 3 月份开始准备找实习,到现在校招结束,申请的工作均为机器学习/数据挖掘算法相关职位,也拿到了几个 sp offer.经历这半年的洗礼,自己的综合能力和素质都得到了一个质的提升. 实话说对于未 ...
- Codeforce算法题 | 你能想出解法,让你的基友少氪金吗?
在TechFlow学长的公众号里发现一道挺有意思的CF算法题,现在利用学长的思路学习一下 题目链接:https://codeforces.com/contest/1418/problem/C 题意 这 ...
随机推荐
- dapper的Dapper-Extensions用法(一)
dapper的Dapper-Extensions用法(一) Dapper-Extensions Dapper Extensions is a small library that complement ...
- hdu1297 Children’s Queue
再加上男人:dp[i-1]: 加2一个女人:dp[i-2]+x. 上述的另一种情况下dp[i-2]它不仅包括加2女人对法律状况.和x是一个加号ff原违法的法律案后加入,这最后是mf案例,然后,x=dp ...
- docker study
Author:Hyphen 同步公布在个人博客中:http://yanheven.github.io/docker-study/ 參考章宇兄的开源项目学习ABC的方法来对docker进行简单的学习与分 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(15)-用户登录详细错误和权限数据库模型设计
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(15)-用户登录详细错误和权限数据库模型设计 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) ...
- MVC4的过滤器
过滤器 提供的四种基本类型过滤器接口,IAuthorizationFilter.IActionFilter.IResultFilter和IExceptionFilter,可通过继承对应的接口和Filt ...
- crawler_java_数据平台结构
大数据生态架构
- 使用php-fpm状态页观察当前的php-fpm状态
对于php-fpm的參数设置,非常多情况下有这种疑问,就是内置的几个參数比如pm.max_children,pm.start_servers等这几个參数究竟该设置最多为多少才合适.事实上这几个參数往往 ...
- 【高德地图API】从零开始学高德JS API(三)覆盖物——标注|折线|多边形|信息窗口|聚合marker|麻点图|图片覆盖物
原文:[高德地图API]从零开始学高德JS API(三)覆盖物——标注|折线|多边形|信息窗口|聚合marker|麻点图|图片覆盖物 摘要:覆盖物,是一张地图的灵魂.有覆盖物的地图,才是完整的地图.在 ...
- TRIZ系列-创新原理-28-替代机械系统原理
替代机械系统原理的详细描写叙述例如以下:1)用光.声.热.嗅觉系统替代机械系统:2)用电.磁或电磁场来与物体交互作用:3)用移动场替代精巧场,用随时间变化的场替代固定场,用结构化的场替代随机场:4)使 ...
- c# 官方命名规则
官方的哦. https://msdn.microsoft.com/zh-cn/library/vstudio/ff926074(v=vs.110).aspx