本文共 1063 字,大约阅读时间需要 3 分钟。
我是这样写的:
import java.util.Scanner;public class D_3_26_1 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); int a0=sc.nextInt(); int a1=sc.nextInt(); int p=sc.nextInt(); int q=sc.nextInt(); int k=sc.nextInt(); long result=fun(k,a0,a1,p,q); System.out.println(result%10000); } private static long fun(int k, int a0, int a1, int p, int q) { // TODO Auto-generated method stub if(k==0) return a0; if(k==1) return a1; else return p*fun(k-1,a0,a1,p,q)+q*fun(k-2,a0,a1,p,q); } }
在eclipse上测试用例答案是正确的
然而,在线编译报错了。。。
运行了很久才出结果。。。我觉得我不该递归。而且应该还有别的我没发现的错。
看了通过的代码。人家是用数组 很简单的操作
import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); int a0=sc.nextInt(); int a1=sc.nextInt(); int p=sc.nextInt(); int q=sc.nextInt(); int k=sc.nextInt(); int a[]=new int[k+1]; a[0]=a0; a[1]=a1; for(int i=2;i<=k;i++) { a[i]=(p*a[i-1]+q*a[i-2])%10000; } System.out.println(a[k]); } }
改成这样以后,顺利通过了。
转载地址:http://pcssi.baihongyu.com/