面试题有点难

    今天到一个公司去面试,面试的技术人员不在,接待的美女就叫我填了一份个人信息表,拿了两套题给我,一套是初级,另一套是中级,叫我选择一套做,我傻兮兮的问:可不可以两套都做了?她说也可以,我满怀信心的开始做题,开始做初级的,前面选择题还比较简单的,然后是程序阅读题,嗯,跟学校期末考试题都差不多嘛,没多大难度嘛,只是有点云里雾里的而已。

    最后是写代码的题了,

    第一题:用一句Sql语句实现查找数据库里一个表的第31条至40条数据,已知表的主键Id为自增字段,但Id可能不连续?==!,这个好熟悉的题,应该不难嘛,但我为啥写不出来呢?我记得我写的是:

select skip 30 * from Tb_Name top 10

说实话有很久很久没写Sql语句了,用EF操作久了完全不知道Sql语句是咋回事了,正确的写法:

select top 10 * from (select top 40 from Tb_Name order by Id)a order by Id desc

    第二题:一列数规则如下:1,1,2,3,5,8,13,21,34。。。 。。。求第30位是多少,要求用递归算法实现?

    掰了很久。。。,不对啊,我应该写得出来的啊?再想想,这个题一点都不难,再想想。。。,MD,啥题嘛,做都做不来,作为一个技术性人才,我严重鄙视出这道题的人,算了,不做了,回去再练练。

我一直弄不懂的就是递归算法,以前开始学程序的时候,书上有一道经典的题:汉诺塔问题。可我一直没搞懂!

正确的写法:

    public class MainClass   
    {   
        public static void Main()     
        {   
            Console.WriteLine(Foo(30));   
        }   
  
        public static int Foo(int i)   
        {   
            if (i <= 0)   
                return 0;   
            else if(i > 0 && i <= 2)   
                return 1;   
            else return Foo(i -1) + Foo(i - 2);   
        }   
    }   

 

最后看了一眼中级题,不会,走了!

 

转载于:https://www.cnblogs.com/yctm/p/3729070.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值