首页 > 编程知识 正文

数列的前n项和公式,数列递推公式求通项公式

时间:2023-05-04 12:13:32 阅读:286627 作者:2449

最直接暴力的方式就是递归求解,但是消耗的时间太大,计算机的工作量大,但是代码简洁。
实例代码如下:

public class Fib {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();System.out.println(fib(n)%10007);}static int fib(int n) {if(n==1||n==2) return 1;return fib(n-1)+fib(n-2);}}

第一种方法是直接求出第n项后再求余数,显然消耗的时间太大,在竞赛中会导致时间超出而使答案不完全正确。因此,我们可以灵活变通一下,直接求出第n项的余数
第二种方法是利用数组来求解:
实例代码如下:

public class Fib {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int F[] = new int[n+2];F[1]=1;F[2]=1;if(n>2){for(int i=3;i<=n;i++){F[i]=(F[i-1]+F[i-2])%10007;//用来保存余数 }}System.out.println(F[n]); } }

第三种方法是利用变量来传递值求出第n项:

public class Fib {public static int main(String[] args) {Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int a = 1, b = 1, result = 0;if(n==1 || n==2) return 1;else { for(int i = 3; i <= n; i++){ result = (a+b)%10007; a = b; b = result ; }return result;} }}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。