一道笔试算法题

题目如下:1,2,3,5,8,13…设计一个递归算法求第30位数字。

C#实现:

private static int Func1(int max, int current, int c1, int c2)

{

if(current == 3)

Console.Write("1,2,");

int c3 = c1 + c2;

Console.Write(c3 + ",");

if (current

{

c3 = Func1(max, current + 1, c2, c3);

}

return c3;

}

static void Main(string[] args)

{

Func1(30, 3, 1, 2);

输出:1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393,196418,317811,514229,832040,1346269,

这道题逻辑不难,目的是考察递归算法,但是,笔试时我放弃了,原因如下:

  1. 平时缺少该类笔试题的训练(应试教育~.~!)。
  2. 过度依赖机器了…如果该题是机试题相信会容易许多(可调试,能看到输出~.~!)。
  3. 笔试的话,感觉该类型题目很脑残啊...~.~!。

留贴纪念。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值