C#一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第100位数是多少, 用递归算法实现。...

  

先看题目:数列的规律是从第3个数开始,每个数是前两个数的和。
“public static int AA(int i)”即定义一个公共静态函数体,输入一个整数(第X位数),返回值;
“if (i <= 0)   return 0;”预防输入0或负数,输入则返回“0”;
“else if (i > 0 && i <= 2)    return 1;”如果输入第1位或第2位,则返回“1”(如题);
“else return AA(i - 1) + AA(i - 2);”输入其它的数则返回前两个数的值。注意:因为求数列中每一个值都是调用该函数,所以求前两个数的值就又要调用2个这个函数。这就是递归(调用自身)。
eg:求AA(100)的值,则返回AA(99) + AA(98)的值,其中又要调用AA(99) 和AA(98)求它们的值,AA(99)又要调用AA(98)和Foo(97),AA(98)又要调用AA(97)和AA(96)……直到调用AA(2)和AA(1)会返回“1”,又一层层代回去,最后加出正确答案

public static int AA(int i)
{
if (i <= 0)
return 0;
else if (i > 0 && i <= 2)
return 1;
else return AA(i - 1) + AA(i - 2);
}

 

转载于:https://www.cnblogs.com/tianyiyi/archive/2012/11/01/2749732.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值