牛客网-2019校招真题-方格走法

一、题目

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

输入描述:

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

输出描述:

输出一行,表示走法的数目
示例1

输入

3 2

输出

10


first try:
 1 static void Main(string[] args)
 2         {
 3              string str=Console.ReadLine();
 4         string[] ss=str.Split(' ');
 5         int x=Convert.ToInt32(ss[0]);
 6         int y=Convert.ToInt32(ss[1]);
 7         
 8         int kind=1;
 9              int i=1;
10              for(;i<=x+y;i++)
11              {
12                  kind=kind*i;
13              }
14               i=1;
15              for(;i<=y;i++)
16              {
17                  kind=kind/i;
18              }
19              i=1;
20              for(;i<=x;i++)
21              {
22                  kind=kind/i;
23              }
24         Console.WriteLine(kind);
25         }

case通过率为80.00%

用例:
10 10

对应输出应该为:

184756

你的输出为:

0

考虑是n的阶乘溢出int,用②

second try:kind定义为int64,通过。
原文地址:https://www.cnblogs.com/yuanyuanhi/p/12174043.html