黑马程序员技术交流社区
标题:
斐波那契数列 1、1、2、3、5、8、13、21、34...... 求第30位数是多少
[打印本页]
作者:
胡元江
时间:
2013-2-14 18:48
标题:
斐波那契数列 1、1、2、3、5、8、13、21、34...... 求第30位数是多少
法1: static void Main(string[] args)
{
Console.WriteLine(Foo(30));
Console.ReadKey();
}
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);
}
法2 :
//前二数的和就是下一个数。
int sum1 = 13; //第一个数也可以是8
int sum2 =21; //第二个数也可以变成13
int sum = 0;
for (int i =9; i <= 30; i++) //相应的i值也要减少
{
sum = sum1 + sum2; //得到后面的数
sum1 = sum2; //将之和前面的数交换
sum2 = sum;
}
Console.WriteLine(sum);
Console.ReadKey();
问题:有没有办法把第二种办法也能变得活性。不只限制在第30个数
作者:
许晓华
时间:
2013-2-14 19:49
BigInteger
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2