裴波那契数列
1,1,2,3,5,8,13,21……
通过递归方法实现此数列,怎么得到第30位的数值!
用c#实现
//递归裴波那契数列
public int fei(int i)
{
if (i==1 || i==2)
{
return 1;
}
else
{
return fei(i-1) + fei(i-2);
}
}
int var = fei(30);
//非递归裴波那契数列,unsafe代码(用指针)
public unsafe int fib(int no)
{
int* fib = stackalloc int[no];
int* p = fib;
*p++ = *p++ = 1;
for (int i=2; i<no; ++i, ++p) *p = p[-1] + p[-2];
return fib[no];
}
int var = fib(30);
求前n相的和
int feb(int s)
{
if (s < 2)
{
Console.WriteLine("1,"+s);
return 1 + s;
}
else
{
Console.Write(s.ToString() + ",");
return feb(s - 1) + s;
}
}

浙公网安备 33010602011771号