在如下8*6的矩阵中,请计算从A移动到B一共有__种走法。要求每次只能向上或向右移动一格,并且不能经过P。
典型的走方格问题,其本质思想还是斐波那契数列,要求得数列第n项的值,就需要得到前两项的值,而前两项的值又需要他们各自前两项的值,蕴含递归思想。
先抛开这道题的的p格条件,分析的话,从A格到B格,由于只能向上或向右走,所以可以得到,要到达B格,只能从左或下出发,则到达B格的方法为到达(B左)的方法数+到达(B下)的方法数之和:
所以:递归的三要素 循环,变化,边界条件
定义f(x,y),其中x为A到B横向走的格数,y为A到B纵向走的格数,则A到B有f(x,y)中走法,不难看出 递归公式为:f(x,y)=f(x-1,y)+f(x,y-1)
边界条件为:f(x,0)=f(0,y)=1
代码如下:
import java.util.Scanner;
public class wanggezoufa {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext())
{
int a=sc.nextInt();
int b =sc.nextInt();
int sum