AlgorithmGossip: 费式数列
说明
Fibonacci为1200年代的欧洲数学家,在他的着作中曾经提到:「若有一只免子每个月生一只小免子,一个月后小免子也开始生产。起初只有一只免子,一个月后就有两只免子,二个月后有三只免子,三个月后有五只免子(小免子投入生产)......。
如果不太理解这个例子的话,举个图就知道了,注意新生的小免子需一个月成长期才会投入生产,类似的道理也可以用于植物的生长,这就是Fibonacci数列,一般习惯称之为费氏数列,例如以下: 1、1 、2、3、5、8、13、21、34、55、89......
解法
依说明,我们可以将费氏数列定义为以下:
fn = fn-1 + fn-2 if n > 1
fn = n if n= 0, 1
namespace 费式数列
{
class Program
{
static void Fib(int n)
{
int [] a=new int [n+1];
a[0] = 0;
a[1] = 1;
for (int i=2; i < n + 1; i++)
{
a[i] = a[i - 1] + a[i - 2];//第N个月的兔子数是N-1和N-2个月的兔子数的总和。因为N-1月的新生小兔子的数量是,N-2兔子的数量。
}
Console.WriteLine("第{0}个月的兔子数量为{1}",n,a[n]);
}
static void Main(string[] args)
{
Console.WriteLine("亲,几个月了!");
int a = int.Parse(Console.ReadLine());
Fib(a);
Console.Read();
}
}
}
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。