网格走法数目,c语言

题目描述

有一个X*Y的网格,小团要在此网格上从左上角到右下角,只能走格点且只能向右或向下走。请设计一个算法,计算小团有多少种走法。给定两个正整数int x,int y,请返回小团的走法数目。

输入描述:

输入包括一行,逗号隔开的两个正整数x和y,取值范围[1,10]。

输出描述:

输出包括一行,为走法的数目。
示例1

输入

复制
3 2

输出

复制
10

解题思路:拿到这道题首先需要注意的是这是一个网格走法数目,所以我们x=3,y=2时网格上的点有12个。这道题我们可以找找规律,首先我们按照示例来走一遍后我们会发现它无论怎么走都必须要向下走y=2步向右走1~x=3步,这就相当于我们要将这些步数进行组合的一个规律。

代码:

#include<stdio.h>

int main()
{
int x,y,i;
long long sum1=1,sum=1;
scanf("%d%d",&x,&y);
for(i=0;i<x;i++)
sum1=sum1*(x+y-i);
for(i=0;i<x;i++)
sum=sum*(x-i);
printf("%d\n",sum1/sum);
return 0;}

猜你喜欢

转载自blog.csdn.net/lhkjg/article/details/81009539