问题:
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。
问总共有多少条不同的路径?
#include <stdio.h>
#include <stdlib.h>
//定义一个求组合的函数!
int combination(int m, int n) {
if(m > n)
return combination(n, m);
int i,j;
long long result = 1;
for (i = n,j = 1; j <= m - 1; i++, j++) {
result=result*i/j;
}
return result;
}
int main()
{
int n,m;
long long sum;
printf("请输入网格规格m X n: ");
//m n 输入用空格隔开!
scanf("%d %d",&m, &n);
sum=combination(m,n) ;
printf("总共有%lld条路径!",sum);
return 0;
}
有两个小问题,不知道为什么会有个报错,以及有时候输出负值