一只小蜜蜂
Problem Description
有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
其中,蜂房的结构如下所示。
Input
输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a<b<50)。
Output
对于每个测试实例,请输出蜜蜂从蜂房a爬到蜂房b的可能路线数,每个实例的输出占一行。
Sample Input
2
1 2
3 6
Sample Output
1 3
思路
1.当两个点大小的差值为1时:ans[1]=1, 差值为2时 :ans[2]=2.
2.从第三个点开始 ans[i] = ans[i-1] + ans[i-2].
3.数值过大时,数据超过int 类型,改为double.
程序
import java.text.DecimalFormat;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System .in);
int n = scanner.nextInt();
double[] ans = new double[51];
ans[1]=1;
ans[2]=2;
for(int i=3;i<51;i++)
ans[i]=ans[i-1]+ans[i-2];
for(int i=1;i<=n;i++){
int a = scanner.nextInt();
int b = scanner.nextInt();
DecimalFormat dFormat = new DecimalFormat("#0");
String res = dFormat.format(ans[b-a]);
System.out.println(res);
}
}
}