我试图用动态规划方法来解决格点路径问题。
从22栅格的左上角开始,右下角有6条路线(没有回溯)。

在2020年电网中有多少条路线?
这是我为解决这个问题而写的代码。我哪里出错了。我好像每次都出错了。我是否跨越了变量数据类型的某些边界?
#include <stdio.h>
int count = 0;
int limita,limitb;
long long int cache[20][20];
unsigned long long int start(int a,int b)
{
unsigned int long long i = 0;
if(a == limita && b == limitb)
return 1;
if(cache[a][b] != -1)
return cache[a][b];
if(a != limita)
i += start(a+1, b);
if(b != limitb)
i += start(a, b+1);
cache[a][b] = i;
return i;
}
int main(void)
{
limita = limitb = 19;
int i,j;
for(i = 0; i < 20; i++)
for(j = 0; j <20;j++)
cache[i][j] = -1;
unsigned long long int number = start(0,0);
printf("The number of ways to reach the end is %llu\n",number);
return 0;
}请帮帮我
发布于 2012-09-17 07:37:57
大小为1*1的网格:
0 1
0+-----+
| |
| |
1+-----+
|<-2->|尺寸为2*2的网格:
0 1 2
0+----+----+
| | |
| | |
1+----+----+
| | |
| | |
2+----+----+
|<---3--->|..。
你的算法似乎没问题,但你把边数错了。
https://stackoverflow.com/questions/12454473
复制相似问题