递归超时:
package com.demo2;
import java.util.Scanner;
/*
* 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
*/
public class HDU_oj2044 {
public static void main(String[] args) {
Scanner sn = new Scanner(System.in);
//输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a<b<50)。
int n = sn.nextInt();
for(int i = 0;i < n; i++) {
int a = sn.nextInt();
int b = sn.nextInt();
System.out.println(compute(b-a));
}
sn.close();
}
public static int compute(int sup) {
if(sup == 1)
return 1;
else if(sup == 2)
return 2;
else
return compute(sup-1) + compute(sup-2);
}
}
大数BigInteger直接存储到数组中:(AC)
package com.demo2;
import java.math.BigInteger;
import java.util.Scanner;
/*
* 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。