对平面上某一点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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。