1,5,11,27,65,157,.,N.求第N项是多少?用C#斐波那契数列
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 10:20:34
1,5,11,27,65,157,.,N.求第N项是多少?用C#斐波那契数列
An= 2*An-1 + An-2
A0=0
A1=1
using System;
class Program
{
public static int Slove(int n)
{
int[] a=new int[]{0,1,5};
if(n0)
{
a[0]=a[1];
a[1]=a[2];
a[2]=2*a[1]+a[0];
n--;
}
return a[2];
}
}
public static void Main()
{
int a=int.Parse(Console.ReadLine());
Console.WriteLine(Slove(a));
}
}
//但是要小心溢出.如果数据大,要用大数.
//而且可以考虑使用矩阵加速.
//[| [| 2 ; 1 |] ; [|1 ; 0 |] |] ^(n-2)*[| [| 5 ; 1 |] ; [| 1 ; 0 |] |] 求第n项
再问: 真是太感谢了!能不能麻烦您帮我解释一下这段代码!
再答: a是大小为3的数组,用a[0]表示An-2 a[1]表示 An-1 a[2]表示 An int[] a=new int[]{0,1,5}; //初始化为A0,A1,A2 if(n0) //执行n次 { a[0]=a[1]; //使上一次的an-1成为这一次的an-2 a[1]=a[2]; //使上一次的an成为这一次的an-1 a[2]=2*a[1]+a[0]; //计算这一次的an n--; } return a[2]; }
A0=0
A1=1
using System;
class Program
{
public static int Slove(int n)
{
int[] a=new int[]{0,1,5};
if(n0)
{
a[0]=a[1];
a[1]=a[2];
a[2]=2*a[1]+a[0];
n--;
}
return a[2];
}
}
public static void Main()
{
int a=int.Parse(Console.ReadLine());
Console.WriteLine(Slove(a));
}
}
//但是要小心溢出.如果数据大,要用大数.
//而且可以考虑使用矩阵加速.
//[| [| 2 ; 1 |] ; [|1 ; 0 |] |] ^(n-2)*[| [| 5 ; 1 |] ; [| 1 ; 0 |] |] 求第n项
再问: 真是太感谢了!能不能麻烦您帮我解释一下这段代码!
再答: a是大小为3的数组,用a[0]表示An-2 a[1]表示 An-1 a[2]表示 An int[] a=new int[]{0,1,5}; //初始化为A0,A1,A2 if(n0) //执行n次 { a[0]=a[1]; //使上一次的an-1成为这一次的an-2 a[1]=a[2]; //使上一次的an成为这一次的an-1 a[2]=2*a[1]+a[0]; //计算这一次的an n--; } return a[2]; }
1,5,11,27,65,157,.,N.求第N项是多少?用C#斐波那契数列
用C#编写斐波那契数列第N项
斐波那契数列中的第n个数是多少
VB:斐波那契数列第一项是1,第二项是1,用递归算法编写一个程序,求数列前N项的和
在斐波那契数列中,如果第n个数中恰好有500个数是3的倍数,求n是多少?
斐波那契数列 c语言求N项为(n-1)项加(n+2)项
用递归法计算斐波那契数列的第n项
C程,输出m到n之间的斐波那契数列,要求调用函数fib(n)求第n项
用C语言求斐波那契数列第n项?
输入斐波那契数列的第N项的位置PASCAL
pascal高精度的斐波那契数列的第n项?
斐波那契数列第N个数用代数式怎么表达?