例6:过河卒
作者:互联网
对平面上某一点V,设它的坐标为(x, y),从A走到V点的路径的条数为f(x,y),则根据题 意只能从上或者从左边走到点,因此有 f(x,y) = f(x-1,y) + f(x, y-1)
再注意边界条件,在第一行和第一列上有: f(0,y)=1和f(x,0)=1 ,边上只有一种情况。
这样,我们能递推出到B点时的总路径数。 这道题可以看成是二维Fibonacci数列。
注意:当行、列数大一点时,就很容易超过long long的范围
#include<bits/stdc++.h> using namespace std; int main(){ int f[31][31]={}; int m,n,x,y,a[30][30]={0}; cin>>m>>n; for(x=0;x<=m;x++){ for(y=0;y<=n;y++){ if(x==0||y==0){ a[x][y]=1; }else{ a[x][y]=a[x-1][y]+a[x][y-1]; } } } for(x=0;x<=m;x++){ for(y=0;y<=n;y++){ cout<<a[x][y]<<" "; } cout<<endl; } cout<<a[m][n]; return 0; }
标签:走到,路径,过河,int,31,30,long 来源: https://www.cnblogs.com/xxsy387/p/16435948.html