有5条东西马路,7条南北马路,他都可以走,如图所示。
请问:上班时他又多少条不同的路线可以走?
分析:将东西马路表上字母,南北马路表上数字,用数组来描述,从家【A,1】
出发,采用顺推,一一分析到达各个路口的走法。
不拐弯就可以达到的路口标为1,表示从家到这个路口的路线只有一
那么达到街口【B,2】,只能从【B,1】或【A,2】来,共有2种走法
到达街口【B,3】,只能从【B,2】或【A,3】来,共有3种走法。
采用顺推的方法,右边或上边的路口只能从下边或左边的路口达到,那么到达路口
的走法等于到达下边和左边路口的路线之和。
a[i][j]=a[i-1][j]+a[i][j-1];
#include<stdio.h>
main()
{
int i,j,a[6][8];
a[1][1]=0;
for(i=2;i<=5;i++)
a[i][1]=1;
for(j=2;j<=7;j++)
a[1][j]=1;
for(i=2;i<=5;i++)
for(j=2;j<=7;j++)
a[i][j]=a[i][j-1]+a[i-1][j];
printf("该人的上班路线可走:\n\n");
for(i=5;i>=1;i--)
{
for(j=1;j<=7;j++)
printf("%5d",a[i][j]);
printf("\n");
}
printf("\n上班可走不同路线数:%d\n",a[5][7]);
}