您的位置:首页 > 其它

project euler 15

2015-12-04 20:48 330 查看


Problem
15


Lattice paths

Starting in the top left corner of a 2×2 grid, and only being able to move to the right and down, there are exactly 6 routes to the bottom right corner.





How many such routes are there through a 20×20 grid?


网格路径

从一个2×2方阵的左上角出发,只允许向右或向下移动,则恰好有6条通往右下角的路径。





对于20×20方阵来说,这样的路径有多少条?

package projecteuler;

import org.junit.Test;

public class Prj15 {

/**
* Starting in the top left corner of a 2×2 grid, and only being able to
* move to the right and down, there are exactly 6 routes to the bottom
* right corner.
*
*
* How many such routes are there through a 20×20 grid?
*/
@Test
public void test() {
System.out.println(getNN(20));
}

/**
* ( 2n)!/ n!/n!
* @param n
* @return
*/
public long getN(int n) {

long sum = 1;
while (n > 1) {
sum *= n--;
}
return sum;
}

/**
* // ( 2n ) * ( 2n - 1) /n / n
* // 3 = 6, 4 = 8
* // 6 * 5 * 4 = 20
* // 3 * 2 * 1
* // 8 * 7 * 6 * 5 = 70
* // 4 * 3 * 2 * 1
*
* @param n
* @return
*/
public long getNN(int n) {

if (n == 3)
return 20;

long sum = 20;
for (int i = 4; i <= n; i++) {
sum = sum * (2 * i) * (2 * i - 1) / i / i;
}
return sum;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: