此题是腾讯的一道面试题,感觉还算有趣就尝试做一下,题目是这样的:
1.题目分析
由于是正方格子,所以就可以很容易得出结论:只要每一步都是向右或者向下,如果最终到达目标点,那么这条路径就是最短路径。
2.编程实现
#include<stdio.h>
#include<stdlib.h>
struct Point {
int x;
int y;
};
void forwardStep(Point pi, int &count, int len)
{
if (pi.x > len || pi.y > len) {
return;
}
if (pi.x == len && pi.y == len) {
count++;
return;
}
pi.x++;
forwardStep(pi, count, len);
pi.x--;
pi.y++;
forwardStep(pi, count, len);
pi.y--;
}
int main(int argc, char *argv[])
{
Point pi = { 0 };
int count = 0;
int len = 8;
forwardStep(pi, count, len);
printf("all count is: %d\n", count);
return 0;
}